1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /* This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
- #ifndef SFTKDBTI_H
- #define SFTKDBTI_H 1
- /*
- * private defines
- */
- struct SFTKDBHandleStr {
- SDB *db;
- PRInt32 ref;
- CK_OBJECT_HANDLE type;
- SECItem passwordKey;
- int defaultIterationCount;
- SECItem *newKey;
- int newDefaultIterationCount;
- SECItem *oldKey;
- SECItem *updatePasswordKey;
- PZLock *passwordLock;
- SFTKDBHandle *peerDB;
- SDB *update;
- char *updateID;
- PRBool updateDBIsInit;
- PRBool usesLegacyStorage;
- };
- #define SFTK_KEYDB_TYPE 0x40000000
- #define SFTK_CERTDB_TYPE 0x00000000
- #define SFTK_OBJ_TYPE_MASK 0xc0000000
- #define SFTK_OBJ_ID_MASK (~SFTK_OBJ_TYPE_MASK)
- #define SFTK_TOKEN_TYPE 0x80000000
- /* the following is the number of id's to handle on the stack at a time,
- * it's not an upper limit of IDS that can be stored in the database */
- #define SFTK_MAX_IDS 10
- #define SFTK_GET_SDB(handle) \
- ((handle)->update ? (handle)->update : (handle)->db)
- SECStatus sftkdb_DecryptAttribute(SFTKDBHandle *handle,
- SECItem *passKey,
- CK_OBJECT_HANDLE id,
- CK_ATTRIBUTE_TYPE attrType,
- SECItem *cipherText, SECItem **plainText);
- SECStatus sftkdb_EncryptAttribute(PLArenaPool *arena,
- SFTKDBHandle *handle, SDB *db,
- SECItem *passKey,
- int iterationCount,
- CK_OBJECT_HANDLE id,
- CK_ATTRIBUTE_TYPE attrType,
- SECItem *plainText, SECItem **cipherText);
- SECStatus sftkdb_SignAttribute(PLArenaPool *arena,
- SFTKDBHandle *handle, SDB *db,
- SECItem *passKey,
- int iterationCount, CK_OBJECT_HANDLE objectID,
- CK_ATTRIBUTE_TYPE attrType,
- SECItem *plainText, SECItem **sigText);
- SECStatus sftkdb_VerifyAttribute(SFTKDBHandle *handle,
- SECItem *passKey,
- CK_OBJECT_HANDLE objectID,
- CK_ATTRIBUTE_TYPE attrType,
- SECItem *plainText, SECItem *sigText);
- PRBool sftkdb_isULONGAttribute(CK_ATTRIBUTE_TYPE type);
- void sftk_ULong2SDBULong(unsigned char *data, CK_ULONG value);
- CK_RV sftkdb_Update(SFTKDBHandle *handle, SECItem *key);
- CK_RV sftkdb_PutAttributeSignature(SFTKDBHandle *handle,
- SDB *keyTarget, CK_OBJECT_HANDLE objectID,
- CK_ATTRIBUTE_TYPE type, SECItem *signText);
- CK_RV sftkdb_GetAttributeSignature(SFTKDBHandle *handle,
- SFTKDBHandle *keyHandle,
- CK_OBJECT_HANDLE objectID,
- CK_ATTRIBUTE_TYPE type,
- SECItem *signText);
- CK_RV
- sftkdb_DestroyAttributeSignature(SFTKDBHandle *handle, SDB *db,
- CK_OBJECT_HANDLE objectID,
- CK_ATTRIBUTE_TYPE type);
- #endif
|