Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(585)

Side by Side Diff: nss/lib/util/utilpars.c

Issue 1843333003: Update NSPR to 4.12 and NSS to 3.23 on iOS (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/nss.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* This Source Code Form is subject to the terms of the Mozilla Public 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 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/. */ 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 /* 4 /*
5 * The following code handles the storage of PKCS 11 modules used by the 5 * The following code handles the storage of PKCS 11 modules used by the
6 * NSS. This file is written to abstract away how the modules are 6 * NSS. This file is written to abstract away how the modules are
7 * stored so we can decide that later. 7 * stored so we can decide that later.
8 */ 8 */
9 #include "secport.h" 9 #include "secport.h"
10 #include "prprf.h" 10 #include "prprf.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 case '\"': 42 case '\"':
43 case '<': 43 case '<':
44 case '{': /* } end curly to keep vi bracket matching working */ 44 case '{': /* } end curly to keep vi bracket matching working */
45 case '(': /* ) */ 45 case '(': /* ) */
46 case '[': /* ] */ return PR_TRUE; 46 case '[': /* ] */ return PR_TRUE;
47 default: break; 47 default: break;
48 } 48 }
49 return PR_FALSE; 49 return PR_FALSE;
50 } 50 }
51 51
52 char *NSSUTIL_ArgStrip(char *c) { 52 const char *NSSUTIL_ArgStrip(const char *c) {
53 while (*c && NSSUTIL_ArgIsBlank(*c)) c++; 53 while (*c && NSSUTIL_ArgIsBlank(*c)) c++;
54 return c; 54 return c;
55 } 55 }
56 56
57 /* 57 /*
58 * find the end of the current tag/value pair. string should be pointing just 58 * find the end of the current tag/value pair. string should be pointing just
59 * after the equal sign. Handles quoted characters. 59 * after the equal sign. Handles quoted characters.
60 */ 60 */
61 char * 61 const char *
62 NSSUTIL_ArgFindEnd(char *string) { 62 NSSUTIL_ArgFindEnd(const char *string) {
63 char endChar = ' '; 63 char endChar = ' ';
64 PRBool lastEscape = PR_FALSE; 64 PRBool lastEscape = PR_FALSE;
65 65
66 if (NSSUTIL_ArgIsQuote(*string)) { 66 if (NSSUTIL_ArgIsQuote(*string)) {
67 endChar = NSSUTIL_ArgGetPair(*string); 67 endChar = NSSUTIL_ArgGetPair(*string);
68 string++; 68 string++;
69 } 69 }
70 70
71 for (;*string; string++) { 71 for (;*string; string++) {
72 if (lastEscape) { 72 if (lastEscape) {
(...skipping 11 matching lines...) Expand all
84 } 84 }
85 85
86 return string; 86 return string;
87 } 87 }
88 88
89 /* 89 /*
90 * get the value pointed to by string. string should be pointing just beyond 90 * get the value pointed to by string. string should be pointing just beyond
91 * the equal sign. 91 * the equal sign.
92 */ 92 */
93 char * 93 char *
94 NSSUTIL_ArgFetchValue(char *string, int *pcount) 94 NSSUTIL_ArgFetchValue(const char *string, int *pcount)
95 { 95 {
96 char *end = NSSUTIL_ArgFindEnd(string); 96 const char *end = NSSUTIL_ArgFindEnd(string);
97 char *retString, *copyString; 97 char *retString, *copyString;
98 PRBool lastEscape = PR_FALSE; 98 PRBool lastEscape = PR_FALSE;
99 int len; 99 int len;
100 100
101 len = end - string; 101 len = end - string;
102 if (len == 0) { 102 if (len == 0) {
103 *pcount = 0; 103 *pcount = 0;
104 return NULL; 104 return NULL;
105 } 105 }
106 106
(...skipping 13 matching lines...) Expand all
120 lastEscape = PR_FALSE; 120 lastEscape = PR_FALSE;
121 *copyString++ = *string; 121 *copyString++ = *string;
122 } 122 }
123 *copyString = 0; 123 *copyString = 0;
124 return retString; 124 return retString;
125 } 125 }
126 126
127 /* 127 /*
128 * point to the next parameter in string 128 * point to the next parameter in string
129 */ 129 */
130 char * 130 const char *
131 NSSUTIL_ArgSkipParameter(char *string) 131 NSSUTIL_ArgSkipParameter(const char *string)
132 { 132 {
133 char *end; 133 const char *end;
134 /* look for the end of the <name>= */ 134 /* look for the end of the <name>= */
135 for (;*string; string++) { 135 for (;*string; string++) {
136 if (*string == '=') { string++; break; } 136 if (*string == '=') { string++; break; }
137 if (NSSUTIL_ArgIsBlank(*string)) return(string); 137 if (NSSUTIL_ArgIsBlank(*string)) return(string);
138 } 138 }
139 139
140 end = NSSUTIL_ArgFindEnd(string); 140 end = NSSUTIL_ArgFindEnd(string);
141 if (*end) end++; 141 if (*end) end++;
142 return end; 142 return end;
143 } 143 }
144 144
145 /* 145 /*
146 * get the value from that tag value pair. 146 * get the value from that tag value pair.
147 */ 147 */
148 char * 148 char *
149 NSSUTIL_ArgGetParamValue(char *paramName,char *parameters) 149 NSSUTIL_ArgGetParamValue(const char *paramName, const char *parameters)
150 { 150 {
151 char searchValue[256]; 151 char searchValue[256];
152 int paramLen = strlen(paramName); 152 int paramLen = strlen(paramName);
153 char *returnValue = NULL; 153 char *returnValue = NULL;
154 int next; 154 int next;
155 155
156 if ((parameters == NULL) || (*parameters == 0)) return NULL; 156 if ((parameters == NULL) || (*parameters == 0)) return NULL;
157 157
158 PORT_Assert(paramLen+2 < sizeof(searchValue)); 158 PORT_Assert(paramLen+2 < sizeof(searchValue));
159 159
160 PORT_Strcpy(searchValue,paramName); 160 PORT_Strcpy(searchValue,paramName);
161 PORT_Strcat(searchValue,"="); 161 PORT_Strcat(searchValue,"=");
162 while (*parameters) { 162 while (*parameters) {
163 if (PORT_Strncasecmp(parameters,searchValue,paramLen+1) == 0) { 163 if (PORT_Strncasecmp(parameters,searchValue,paramLen+1) == 0) {
164 parameters += paramLen+1; 164 parameters += paramLen+1;
165 returnValue = NSSUTIL_ArgFetchValue(parameters,&next); 165 returnValue = NSSUTIL_ArgFetchValue(parameters,&next);
166 break; 166 break;
167 } else { 167 } else {
168 parameters = NSSUTIL_ArgSkipParameter(parameters); 168 parameters = NSSUTIL_ArgSkipParameter(parameters);
169 } 169 }
170 parameters = NSSUTIL_ArgStrip(parameters); 170 parameters = NSSUTIL_ArgStrip(parameters);
171 } 171 }
172 return returnValue; 172 return returnValue;
173 } 173 }
174 174
175 /* 175 /*
176 * find the next flag in the parameter list 176 * find the next flag in the parameter list
177 */ 177 */
178 char * 178 const char *
179 NSSUTIL_ArgNextFlag(char *flags) 179 NSSUTIL_ArgNextFlag(const char *flags)
180 { 180 {
181 for (; *flags ; flags++) { 181 for (; *flags ; flags++) {
182 if (*flags == ',') { 182 if (*flags == ',') {
183 flags++; 183 flags++;
184 break; 184 break;
185 } 185 }
186 } 186 }
187 return flags; 187 return flags;
188 } 188 }
189 189
190 /* 190 /*
191 * return true if the flag is set in the label parameter. 191 * return true if the flag is set in the label parameter.
192 */ 192 */
193 PRBool 193 PRBool
194 NSSUTIL_ArgHasFlag(char *label, char *flag, char *parameters) 194 NSSUTIL_ArgHasFlag(const char *label, const char *flag, const char *parameters)
195 { 195 {
196 char *flags,*index; 196 char *flags;
197 const char *index;
197 int len = strlen(flag); 198 int len = strlen(flag);
198 PRBool found = PR_FALSE; 199 PRBool found = PR_FALSE;
199 200
200 flags = NSSUTIL_ArgGetParamValue(label,parameters); 201 flags = NSSUTIL_ArgGetParamValue(label,parameters);
201 if (flags == NULL) return PR_FALSE; 202 if (flags == NULL) return PR_FALSE;
202 203
203 for (index=flags; *index; index=NSSUTIL_ArgNextFlag(index)) { 204 for (index=flags; *index; index=NSSUTIL_ArgNextFlag(index)) {
204 if (PORT_Strncasecmp(index,flag,len) == 0) { 205 if (PORT_Strncasecmp(index,flag,len) == 0) {
205 found=PR_TRUE; 206 found=PR_TRUE;
206 break; 207 break;
207 } 208 }
208 } 209 }
209 PORT_Free(flags); 210 PORT_Free(flags);
210 return found; 211 return found;
211 } 212 }
212 213
213 /* 214 /*
214 * decode a number. handle octal (leading '0'), hex (leading '0x') or decimal 215 * decode a number. handle octal (leading '0'), hex (leading '0x') or decimal
215 */ 216 */
216 long 217 long
217 NSSUTIL_ArgDecodeNumber(char *num) 218 NSSUTIL_ArgDecodeNumber(const char *num)
218 { 219 {
219 int radix = 10; 220 int radix = 10;
220 unsigned long value = 0; 221 unsigned long value = 0;
221 long retValue = 0; 222 long retValue = 0;
222 int sign = 1; 223 int sign = 1;
223 int digit; 224 int digit;
224 225
225 if (num == NULL) return retValue; 226 if (num == NULL) return retValue;
226 227
227 num = NSSUTIL_ArgStrip(num); 228 num = NSSUTIL_ArgStrip(num);
(...skipping 29 matching lines...) Expand all
257 258
258 retValue = ((int) value) * sign; 259 retValue = ((int) value) * sign;
259 return retValue; 260 return retValue;
260 } 261 }
261 262
262 /* 263 /*
263 * parameters are tag value pairs. This function returns the tag or label (the 264 * parameters are tag value pairs. This function returns the tag or label (the
264 * value before the equal size. 265 * value before the equal size.
265 */ 266 */
266 char * 267 char *
267 NSSUTIL_ArgGetLabel(char *inString, int *next) 268 NSSUTIL_ArgGetLabel(const char *inString, int *next)
268 { 269 {
269 char *name=NULL; 270 char *name=NULL;
270 char *string; 271 const char *string;
271 int len; 272 int len;
272 273
273 /* look for the end of the <label>= */ 274 /* look for the end of the <label>= */
274 for (string = inString;*string; string++) { 275 for (string = inString;*string; string++) {
275 if (*string == '=') { break; } 276 if (*string == '=') { break; }
276 if (NSSUTIL_ArgIsBlank(*string)) break; 277 if (NSSUTIL_ArgIsBlank(*string)) break;
277 } 278 }
278 279
279 len = string - inString; 280 len = string - inString;
280 281
281 *next = len; 282 *next = len;
282 if (*string == '=') (*next) += 1; 283 if (*string == '=') (*next) += 1;
283 if (len > 0) { 284 if (len > 0) {
284 name = PORT_Alloc(len+1); 285 name = PORT_Alloc(len+1);
285 PORT_Strncpy(name,inString,len); 286 PORT_Strncpy(name,inString,len);
286 name[len] = 0; 287 name[len] = 0;
287 } 288 }
288 return name; 289 return name;
289 } 290 }
290 291
291 /* 292 /*
292 * read an argument at a Long integer 293 * read an argument at a Long integer
293 */ 294 */
294 long 295 long
295 NSSUTIL_ArgReadLong(char *label,char *params, long defValue, PRBool *isdefault) 296 NSSUTIL_ArgReadLong(const char *label, const char *params,
297 » » long defValue, PRBool *isdefault)
296 { 298 {
297 char *value; 299 char *value;
298 long retValue; 300 long retValue;
299 if (isdefault) *isdefault = PR_FALSE; 301 if (isdefault) *isdefault = PR_FALSE;
300 302
301 value = NSSUTIL_ArgGetParamValue(label,params); 303 value = NSSUTIL_ArgGetParamValue(label, params);
302 if (value == NULL) { 304 if (value == NULL) {
303 if (isdefault) *isdefault = PR_TRUE; 305 if (isdefault) *isdefault = PR_TRUE;
304 return defValue; 306 return defValue;
305 } 307 }
306 retValue = NSSUTIL_ArgDecodeNumber(value); 308 retValue = NSSUTIL_ArgDecodeNumber(value);
307 if (value) PORT_Free(value); 309 if (value) PORT_Free(value);
308 310
309 return retValue; 311 return retValue;
310 } 312 }
311 313
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 NSSUTIL_ARG_ENTRY(RANDOM,SECMOD_RANDOM_FLAG), 558 NSSUTIL_ARG_ENTRY(RANDOM,SECMOD_RANDOM_FLAG),
557 NSSUTIL_ARG_ENTRY(Disable, SECMOD_DISABLE_FLAG), 559 NSSUTIL_ARG_ENTRY(Disable, SECMOD_DISABLE_FLAG),
558 }; 560 };
559 561
560 static int nssutil_argSlotFlagTableSize = 562 static int nssutil_argSlotFlagTableSize =
561 sizeof(nssutil_argSlotFlagTable)/sizeof(nssutil_argSlotFlagTable[0]); 563 sizeof(nssutil_argSlotFlagTable)/sizeof(nssutil_argSlotFlagTable[0]);
562 564
563 565
564 /* turn the slot flags into a bit mask */ 566 /* turn the slot flags into a bit mask */
565 unsigned long 567 unsigned long
566 NSSUTIL_ArgParseSlotFlags(char *label,char *params) 568 NSSUTIL_ArgParseSlotFlags(const char *label, const char *params)
567 { 569 {
568 char *flags,*index; 570 char *flags;
571 const char *index;
569 unsigned long retValue = 0; 572 unsigned long retValue = 0;
570 int i; 573 int i;
571 PRBool all = PR_FALSE; 574 PRBool all = PR_FALSE;
572 575
573 flags = NSSUTIL_ArgGetParamValue(label,params); 576 flags = NSSUTIL_ArgGetParamValue(label,params);
574 if (flags == NULL) return 0; 577 if (flags == NULL) return 0;
575 578
576 if (PORT_Strcasecmp(flags,"all") == 0) all = PR_TRUE; 579 if (PORT_Strcasecmp(flags,"all") == 0) all = PR_TRUE;
577 580
578 for (index=flags; *index; index=NSSUTIL_ArgNextFlag(index)) { 581 for (index=flags; *index; index=NSSUTIL_ArgNextFlag(index)) {
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 slotInfo->defaultFlags |= PK11_OWN_PW_DEFAULTS; 616 slotInfo->defaultFlags |= PK11_OWN_PW_DEFAULTS;
614 } 617 }
615 slotInfo->hasRootCerts = NSSUTIL_ArgHasFlag("rootFlags", "hasRootCerts", 618 slotInfo->hasRootCerts = NSSUTIL_ArgHasFlag("rootFlags", "hasRootCerts",
616 params); 619 params);
617 slotInfo->hasRootTrust = NSSUTIL_ArgHasFlag("rootFlags", "hasRootTrust", 620 slotInfo->hasRootTrust = NSSUTIL_ArgHasFlag("rootFlags", "hasRootTrust",
618 params); 621 params);
619 } 622 }
620 623
621 /* parse all the slot specific parameters. */ 624 /* parse all the slot specific parameters. */
622 struct NSSUTILPreSlotInfoStr * 625 struct NSSUTILPreSlotInfoStr *
623 NSSUTIL_ArgParseSlotInfo(PLArenaPool *arena, char *slotParams, int *retCount) 626 NSSUTIL_ArgParseSlotInfo(PLArenaPool *arena, const char *slotParams,
627 » » » int *retCount)
624 { 628 {
625 char *slotIndex; 629 const char *slotIndex;
626 struct NSSUTILPreSlotInfoStr *slotInfo = NULL; 630 struct NSSUTILPreSlotInfoStr *slotInfo = NULL;
627 int i=0,count = 0,next; 631 int i=0,count = 0,next;
628 632
629 *retCount = 0; 633 *retCount = 0;
630 if ((slotParams == NULL) || (*slotParams == 0)) return NULL; 634 if ((slotParams == NULL) || (*slotParams == 0)) return NULL;
631 635
632 /* first count the number of slots */ 636 /* first count the number of slots */
633 for (slotIndex = NSSUTIL_ArgStrip(slotParams); *slotIndex; 637 for (slotIndex = NSSUTIL_ArgStrip(slotParams); *slotIndex;
634 slotIndex = NSSUTIL_ArgStrip(NSSUTIL_ArgSkipParameter(slotIndex))) { 638 slotIndex = NSSUTIL_ArgStrip(NSSUTIL_ArgSkipParameter(slotIndex))) {
635 count++; 639 count++;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 } 671 }
668 672
669 /************************************************************************ 673 /************************************************************************
670 * make a new slot specific parameter 674 * make a new slot specific parameter
671 */ 675 */
672 /* first make the slot flags */ 676 /* first make the slot flags */
673 static char * 677 static char *
674 nssutil_mkSlotFlags(unsigned long defaultFlags) 678 nssutil_mkSlotFlags(unsigned long defaultFlags)
675 { 679 {
676 char *flags=NULL; 680 char *flags=NULL;
677 int i,j; 681 unsigned int i;
682 int j;
678 683
679 for (i=0; i < sizeof(defaultFlags)*8; i++) { 684 for (i=0; i < sizeof(defaultFlags)*8; i++) {
680 if (defaultFlags & (1UL <<i)) { 685 if (defaultFlags & (1UL <<i)) {
681 char *string = NULL; 686 char *string = NULL;
682 687
683 for (j=0; j < nssutil_argSlotFlagTableSize; j++) { 688 for (j=0; j < nssutil_argSlotFlagTableSize; j++) {
684 if (nssutil_argSlotFlagTable[j].value == ( 1UL << i )) { 689 if (nssutil_argSlotFlagTable[j].value == ( 1UL << i )) {
685 string = nssutil_argSlotFlagTable[j].name; 690 string = nssutil_argSlotFlagTable[j].name;
686 break; 691 break;
687 } 692 }
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
760 nssutil_freePair(rootFlagsPair); 765 nssutil_freePair(rootFlagsPair);
761 return slotString; 766 return slotString;
762 } 767 }
763 768
764 769
765 /************************************************************************ 770 /************************************************************************
766 * Parse Full module specs into: library, commonName, module parameters, 771 * Parse Full module specs into: library, commonName, module parameters,
767 * and NSS specifi parameters. 772 * and NSS specifi parameters.
768 */ 773 */
769 SECStatus 774 SECStatus
770 NSSUTIL_ArgParseModuleSpecEx(char *modulespec, char **lib, char **mod, 775 NSSUTIL_ArgParseModuleSpecEx(const char *modulespec, char **lib, char **mod,
771 char **parameters, char **nss, 776 char **parameters, char **nss,
772 char **config) 777 char **config)
773 { 778 {
774 int next; 779 int next;
775 modulespec = NSSUTIL_ArgStrip(modulespec); 780 modulespec = NSSUTIL_ArgStrip(modulespec);
776 781
777 *lib = *mod = *parameters = *nss = *config = 0; 782 *lib = *mod = *parameters = *nss = *config = 0;
778 783
779 while (*modulespec) { 784 while (*modulespec) {
780 NSSUTIL_HANDLE_STRING_ARG(modulespec,*lib,"library=",;) 785 NSSUTIL_HANDLE_STRING_ARG(modulespec,*lib,"library=",;)
781 NSSUTIL_HANDLE_STRING_ARG(modulespec,*mod,"name=",;) 786 NSSUTIL_HANDLE_STRING_ARG(modulespec,*mod,"name=",;)
782 NSSUTIL_HANDLE_STRING_ARG(modulespec,*parameters,"parameters=",;) 787 NSSUTIL_HANDLE_STRING_ARG(modulespec,*parameters,"parameters=",;)
783 NSSUTIL_HANDLE_STRING_ARG(modulespec,*nss,"nss=",;) 788 NSSUTIL_HANDLE_STRING_ARG(modulespec,*nss,"nss=",;)
784 NSSUTIL_HANDLE_STRING_ARG(modulespec,*config,"config=",;) 789 NSSUTIL_HANDLE_STRING_ARG(modulespec,*config,"config=",;)
785 NSSUTIL_HANDLE_FINAL_ARG(modulespec) 790 NSSUTIL_HANDLE_FINAL_ARG(modulespec)
786 } 791 }
787 return SECSuccess; 792 return SECSuccess;
788 } 793 }
789 794
790 /************************************************************************ 795 /************************************************************************
791 * Parse Full module specs into: library, commonName, module parameters, 796 * Parse Full module specs into: library, commonName, module parameters,
792 * and NSS specifi parameters. 797 * and NSS specifi parameters.
793 */ 798 */
794 SECStatus 799 SECStatus
795 NSSUTIL_ArgParseModuleSpec(char *modulespec, char **lib, char **mod, 800 NSSUTIL_ArgParseModuleSpec(const char *modulespec, char **lib, char **mod,
796 char **parameters, char **nss) 801 char **parameters, char **nss)
797 { 802 {
798 int next; 803 int next;
799 modulespec = NSSUTIL_ArgStrip(modulespec); 804 modulespec = NSSUTIL_ArgStrip(modulespec);
800 805
801 *lib = *mod = *parameters = *nss = 0; 806 *lib = *mod = *parameters = *nss = 0;
802 807
803 while (*modulespec) { 808 while (*modulespec) {
804 NSSUTIL_HANDLE_STRING_ARG(modulespec,*lib,"library=",;) 809 NSSUTIL_HANDLE_STRING_ARG(modulespec,*lib,"library=",;)
805 NSSUTIL_HANDLE_STRING_ARG(modulespec,*mod,"name=",;) 810 NSSUTIL_HANDLE_STRING_ARG(modulespec,*mod,"name=",;)
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
849 { 854 {
850 return NSSUTIL_MkModuleSpecEx(dllName, commonName, parameters, NSS, NULL); 855 return NSSUTIL_MkModuleSpecEx(dllName, commonName, parameters, NSS, NULL);
851 } 856 }
852 857
853 858
854 #define NSSUTIL_ARG_FORTEZZA_FLAG "FORTEZZA" 859 #define NSSUTIL_ARG_FORTEZZA_FLAG "FORTEZZA"
855 /****************************************************************************** 860 /******************************************************************************
856 * Parse the cipher flags from the NSS parameter 861 * Parse the cipher flags from the NSS parameter
857 */ 862 */
858 void 863 void
859 NSSUTIL_ArgParseCipherFlags(unsigned long *newCiphers,char *cipherList) 864 NSSUTIL_ArgParseCipherFlags(unsigned long *newCiphers, const char *cipherList)
860 { 865 {
861 newCiphers[0] = newCiphers[1] = 0; 866 newCiphers[0] = newCiphers[1] = 0;
862 if ((cipherList == NULL) || (*cipherList == 0)) return; 867 if ((cipherList == NULL) || (*cipherList == 0)) return;
863 868
864 for (;*cipherList; cipherList=NSSUTIL_ArgNextFlag(cipherList)) { 869 for (;*cipherList; cipherList=NSSUTIL_ArgNextFlag(cipherList)) {
865 if (PORT_Strncasecmp(cipherList,NSSUTIL_ARG_FORTEZZA_FLAG, 870 if (PORT_Strncasecmp(cipherList,NSSUTIL_ARG_FORTEZZA_FLAG,
866 sizeof(NSSUTIL_ARG_FORTEZZA_FLAG)-1) == 0) { 871 sizeof(NSSUTIL_ARG_FORTEZZA_FLAG)-1) == 0) {
867 newCiphers[0] |= SECMOD_FORTEZZA_FLAG; 872 newCiphers[0] |= SECMOD_FORTEZZA_FLAG;
868 } 873 }
869 874
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
920 } 925 }
921 return flags; 926 return flags;
922 } 927 }
923 928
924 929
925 /* construct the NSS cipher flags */ 930 /* construct the NSS cipher flags */
926 static char * 931 static char *
927 nssutil_mkCipherFlags(unsigned long ssl0, unsigned long ssl1) 932 nssutil_mkCipherFlags(unsigned long ssl0, unsigned long ssl1)
928 { 933 {
929 char *cipher = NULL; 934 char *cipher = NULL;
930 int i; 935 unsigned int i;
931 936
932 for (i=0; i < sizeof(ssl0)*8; i++) { 937 for (i=0; i < sizeof(ssl0)*8; i++) {
933 if (ssl0 & (1UL <<i)) { 938 if (ssl0 & (1UL <<i)) {
934 char *string; 939 char *string;
935 if ((1UL <<i) == SECMOD_FORTEZZA_FLAG) { 940 if ((1UL <<i) == SECMOD_FORTEZZA_FLAG) {
936 string = PR_smprintf("%s",NSSUTIL_ARG_FORTEZZA_FLAG); 941 string = PR_smprintf("%s",NSSUTIL_ARG_FORTEZZA_FLAG);
937 } else { 942 } else {
938 string = PR_smprintf("0h0x%08lx", 1UL <<i); 943 string = PR_smprintf("0h0x%08lx", 1UL <<i);
939 } 944 }
940 if (cipher) { 945 if (cipher) {
(...skipping 24 matching lines...) Expand all
965 } 970 }
966 971
967 /* Assemble a full NSS string. */ 972 /* Assemble a full NSS string. */
968 char * 973 char *
969 NSSUTIL_MkNSSString(char **slotStrings, int slotCount, PRBool internal, 974 NSSUTIL_MkNSSString(char **slotStrings, int slotCount, PRBool internal,
970 PRBool isFIPS, PRBool isModuleDB, PRBool isModuleDBOnly, 975 PRBool isFIPS, PRBool isModuleDB, PRBool isModuleDBOnly,
971 PRBool isCritical, unsigned long trustOrder, 976 PRBool isCritical, unsigned long trustOrder,
972 unsigned long cipherOrder, unsigned long ssl0, unsigned long ssl1) 977 unsigned long cipherOrder, unsigned long ssl0, unsigned long ssl1)
973 { 978 {
974 int slotLen, i; 979 int slotLen, i;
975 char *slotParams, *ciphers, *nss, *nssFlags, *tmp; 980 char *slotParams, *ciphers, *nss, *nssFlags;
981 const char *tmp;
976 char *trustOrderPair,*cipherOrderPair,*slotPair,*cipherPair,*flagPair; 982 char *trustOrderPair,*cipherOrderPair,*slotPair,*cipherPair,*flagPair;
977 983
978 984
979 /* now let's build up the string 985 /* now let's build up the string
980 * first the slot infos 986 * first the slot infos
981 */ 987 */
982 slotLen=0; 988 slotLen=0;
983 for (i=0; i < (int)slotCount; i++) { 989 for (i=0; i < (int)slotCount; i++) {
984 slotLen += PORT_Strlen(slotStrings[i])+1; 990 slotLen += PORT_Strlen(slotStrings[i])+1;
985 } 991 }
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
1070 dbType = NSS_DB_TYPE_SQL; 1076 dbType = NSS_DB_TYPE_SQL;
1071 configdir = configdir + sizeof(SQLDB) -1; 1077 configdir = configdir + sizeof(SQLDB) -1;
1072 } else if (PORT_Strncmp(configdir, EXTERNDB, sizeof(EXTERNDB)-1) == 0) { 1078 } else if (PORT_Strncmp(configdir, EXTERNDB, sizeof(EXTERNDB)-1) == 0) {
1073 dbType = NSS_DB_TYPE_EXTERN; 1079 dbType = NSS_DB_TYPE_EXTERN;
1074 configdir = configdir + sizeof(EXTERNDB) -1; 1080 configdir = configdir + sizeof(EXTERNDB) -1;
1075 } else if (PORT_Strncmp(configdir, LEGACY, sizeof(LEGACY)-1) == 0) { 1081 } else if (PORT_Strncmp(configdir, LEGACY, sizeof(LEGACY)-1) == 0) {
1076 dbType = NSS_DB_TYPE_LEGACY; 1082 dbType = NSS_DB_TYPE_LEGACY;
1077 configdir = configdir + sizeof(LEGACY) -1; 1083 configdir = configdir + sizeof(LEGACY) -1;
1078 } else { 1084 } else {
1079 /* look up the default from the environment */ 1085 /* look up the default from the environment */
1080 » char *defaultType = PR_GetEnv("NSS_DEFAULT_DB_TYPE"); 1086 » char *defaultType = PR_GetEnvSecure("NSS_DEFAULT_DB_TYPE");
1081 if (defaultType != NULL) { 1087 if (defaultType != NULL) {
1082 if (PORT_Strncmp(defaultType, SQLDB, sizeof(SQLDB)-2) == 0) { 1088 if (PORT_Strncmp(defaultType, SQLDB, sizeof(SQLDB)-2) == 0) {
1083 dbType = NSS_DB_TYPE_SQL; 1089 dbType = NSS_DB_TYPE_SQL;
1084 } else if (PORT_Strncmp(defaultType,EXTERNDB,sizeof(EXTERNDB)-2)==0) { 1090 } else if (PORT_Strncmp(defaultType,EXTERNDB,sizeof(EXTERNDB)-2)==0) {
1085 dbType = NSS_DB_TYPE_EXTERN; 1091 dbType = NSS_DB_TYPE_EXTERN;
1086 } else if (PORT_Strncmp(defaultType, LEGACY, sizeof(LEGACY)-2) == 0) { 1092 } else if (PORT_Strncmp(defaultType, LEGACY, sizeof(LEGACY)-2) == 0) {
1087 dbType = NSS_DB_TYPE_LEGACY; 1093 dbType = NSS_DB_TYPE_LEGACY;
1088 } 1094 }
1089 } 1095 }
1090 } 1096 }
1091 /* if the caller has already set a type, don't change it */ 1097 /* if the caller has already set a type, don't change it */
1092 if (*pdbType == NSS_DB_TYPE_NONE) { 1098 if (*pdbType == NSS_DB_TYPE_NONE) {
1093 *pdbType = dbType; 1099 *pdbType = dbType;
1094 } 1100 }
1095 return configdir; 1101 return configdir;
1096 } 1102 }
1097 1103
1098 char * 1104 char *
1099 _NSSUTIL_GetSecmodName(char *param, NSSDBType *dbType, char **appName, 1105 _NSSUTIL_GetSecmodName(const char *param, NSSDBType *dbType, char **appName,
1100 char **filename, PRBool *rw) 1106 char **filename, PRBool *rw)
1101 { 1107 {
1102 int next; 1108 int next;
1103 char *configdir = NULL; 1109 char *configdir = NULL;
1104 char *secmodName = NULL; 1110 char *secmodName = NULL;
1105 char *value = NULL; 1111 char *value = NULL;
1106 char *save_params = param; 1112 const char *save_params = param;
1107 const char *lconfigdir; 1113 const char *lconfigdir;
1108 PRBool noModDB = PR_FALSE; 1114 PRBool noModDB = PR_FALSE;
1109 param = NSSUTIL_ArgStrip(param); 1115 param = NSSUTIL_ArgStrip(param);
1110
1111 1116
1112 while (*param) { 1117 while (*param) {
1113 NSSUTIL_HANDLE_STRING_ARG(param,configdir,"configDir=",;) 1118 NSSUTIL_HANDLE_STRING_ARG(param,configdir,"configDir=",;)
1114 NSSUTIL_HANDLE_STRING_ARG(param,secmodName,"secmod=",;) 1119 NSSUTIL_HANDLE_STRING_ARG(param,secmodName,"secmod=",;)
1115 NSSUTIL_HANDLE_FINAL_ARG(param) 1120 NSSUTIL_HANDLE_FINAL_ARG(param)
1116 } 1121 }
1117 1122
1118 *rw = PR_TRUE; 1123 *rw = PR_TRUE;
1119 if (NSSUTIL_ArgHasFlag("flags","readOnly",save_params)) { 1124 if (NSSUTIL_ArgHasFlag("flags","readOnly",save_params)) {
1120 *rw = PR_FALSE; 1125 *rw = PR_FALSE;
(...skipping 28 matching lines...) Expand all
1149 value = PR_smprintf("%s" NSSUTIL_PATH_SEPARATOR "%s", 1154 value = PR_smprintf("%s" NSSUTIL_PATH_SEPARATOR "%s",
1150 lconfigdir,secmodName); 1155 lconfigdir,secmodName);
1151 } else { 1156 } else {
1152 value = PR_smprintf("%s",secmodName); 1157 value = PR_smprintf("%s",secmodName);
1153 } 1158 }
1154 if (configdir) PORT_Free(configdir); 1159 if (configdir) PORT_Free(configdir);
1155 return value; 1160 return value;
1156 } 1161 }
1157 1162
1158 1163
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698