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 #ifndef _UTILPARS_H_ 6 #define _UTILPARS_H_ 1 7 8 #include "utilparst.h" 9 #include "plarena.h" 10 11 /* handle a module db request */ 12 char **NSSUTIL_DoModuleDBFunction(unsigned long function, char *parameters, void *args); 13 14 /* parsing functions */ 15 char *NSSUTIL_ArgFetchValue(const char *string, int *pcount); 16 const char *NSSUTIL_ArgStrip(const char *c); 17 char *NSSUTIL_ArgGetParamValue(const char *paramName, const char *parameters); 18 const char *NSSUTIL_ArgSkipParameter(const char *string); 19 char *NSSUTIL_ArgGetLabel(const char *inString, int *next); 20 long NSSUTIL_ArgDecodeNumber(const char *num); 21 PRBool NSSUTIL_ArgIsBlank(char c); 22 PRBool NSSUTIL_ArgHasFlag(const char *label, const char *flag, 23 const char *parameters); 24 long NSSUTIL_ArgReadLong(const char *label, const char *params, long defValue, 25 PRBool *isdefault); 26 27 /* quoting functions */ 28 int NSSUTIL_EscapeSize(const char *string, char quote); 29 char *NSSUTIL_Escape(const char *string, char quote); 30 int NSSUTIL_QuoteSize(const char *string, char quote); 31 char *NSSUTIL_Quote(const char *string, char quote); 32 int NSSUTIL_DoubleEscapeSize(const char *string, char quote1, char quote2); 33 char *NSSUTIL_DoubleEscape(const char *string, char quote1, char quote2); 34 35 unsigned long NSSUTIL_ArgParseSlotFlags(const char *label, const char *params); 36 struct NSSUTILPreSlotInfoStr *NSSUTIL_ArgParseSlotInfo(PLArenaPool *arena, 37 const char *slotParams, int *retCount); 38 char *NSSUTIL_MkSlotString(unsigned long slotID, unsigned long defaultFlags, 39 unsigned long timeout, unsigned char askpw_in, 40 PRBool hasRootCerts, PRBool hasRootTrust); 41 SECStatus NSSUTIL_ArgParseModuleSpec(const char *modulespec, char **lib, 42 char **mod, char **parameters, char **nss); 43 SECStatus NSSUTIL_ArgParseModuleSpecEx(const char *modulespec, char **lib, 44 char **mod, char **parameters, char **nss, char **config); 45 char *NSSUTIL_MkModuleSpec(char *dllName, char *commonName, 46 char *parameters, char *NSS); 47 char *NSSUTIL_MkModuleSpecEx(char *dllName, char *commonName, 48 char *parameters, char *NSS, char *config); 49 char *NSSUTIL_AddNSSFlagToModuleSpec(char *spec, char *addFlag); 50 void NSSUTIL_ArgParseCipherFlags(unsigned long *newCiphers, 51 const char *cipherList); 52 char *NSSUTIL_MkNSSString(char **slotStrings, int slotCount, PRBool internal, 53 PRBool isFIPS, PRBool isModuleDB, PRBool isModuleDBOnly, 54 PRBool isCritical, unsigned long trustOrder, 55 unsigned long cipherOrder, unsigned long ssl0, unsigned long ssl1); 56 57 /* 58 * private functions for softoken. 59 */ 60 char *_NSSUTIL_GetSecmodName(const char *param, NSSDBType *dbType, 61 char **appName, char **filename, PRBool *rw); 62 const char *_NSSUTIL_EvaluateConfigDir(const char *configdir, NSSDBType *dbType, char **app); 63 #if defined(_WIN32) 64 wchar_t *_NSSUTIL_UTF8ToWide(const char *buf); 65 PRStatus _NSSUTIL_Access(const char *path, PRAccessHow how); 66 #else 67 #define _NSSUTIL_Access(path, how) PR_Access((path), (how)) 68 #endif 69 70 #endif /* _UTILPARS_H_ */ 71