Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 /*
5 * This code defines the glue layer between softoken and the legacy DB library
6 */
7 #include "sdb.h"
9 /*
10 * function prototypes for the callbacks into softoken from the legacyDB
11 */
13 typedef SECStatus (*LGEncryptFunc)(PLArenaPool *arena, SDB *sdb,
14 SECItem *plainText, SECItem **cipherText);
15 typedef SECStatus (*LGDecryptFunc)(SDB *sdb, SECItem *cipherText,
16 SECItem **plainText);
18 /*
19 * function prototypes for the exported functions.
20 */
21 typedef CK_RV (*LGOpenFunc) (const char *dir, const char *certPrefix,
22 const char *keyPrefix,
23 int certVersion, int keyVersion, int flags,
24 SDB **certDB, SDB **keyDB);
25 typedef char ** (*LGReadSecmodFunc)(const char *appName,
26 const char *filename,
27 const char *dbname, char *params, PRBool rw);
28 typedef SECStatus (*LGReleaseSecmodFunc)(const char *appName,
29 const char *filename,
30 const char *dbname, char **params, PRBool rw);
31 typedef SECStatus (*LGDeleteSecmodFunc)(const char *appName,
32 const char *filename,
33 const char *dbname, char *params, PRBool rw);
34 typedef SECStatus (*LGAddSecmodFunc)(const char *appName,
35 const char *filename,
36 const char *dbname, char *params, PRBool rw);
37 typedef SECStatus (*LGShutdownFunc)(PRBool forked);
38 typedef void (*LGSetForkStateFunc)(PRBool);
39 typedef void (*LGSetCryptFunc)(LGEncryptFunc, LGDecryptFunc);
41 /*
42 * Softoken Glue Functions
43 */
44 CK_RV sftkdbCall_open(const char *dir, const char *certPrefix,
45 const char *keyPrefix,
46 int certVersion, int keyVersion, int flags, PRBool isFIPS,
47 SDB **certDB, SDB **keyDB);
48 char ** sftkdbCall_ReadSecmodDB(const char *appName, const char *filename,
49 const char *dbname, char *params, PRBool rw);
50 SECStatus sftkdbCall_ReleaseSecmodDBData(const char *appName,
51 const char *filename, const char *dbname,
52 char **moduleSpecList, PRBool rw);
53 SECStatus sftkdbCall_DeleteSecmodDB(const char *appName,
54 const char *filename, const char *dbname,
55 char *args, PRBool rw);
56 SECStatus sftkdbCall_AddSecmodDB(const char *appName,
57 const char *filename, const char *dbname,
58 char *module, PRBool rw);
59 CK_RV sftkdbCall_Shutdown(void);