mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-22 16:37:31 +09:00
Update NSS to 3.38
- Added HACL*Poly1305 32-bit (INRIA/Microsoft) - Updated to final TLS 1.3 draft version (28) - Removed TLS 1.3 prerelease draft limit check - Removed NPN code - Enabled dev/urandom-only RNG on Linux with NSS_SEED_ONLY_DEV_URANDOM for non-standard environments - Fixed several bugs with TLS 1.3 negotiation - Updated internal certificate store - Added support for the TLS Record Size Limit Extension. - Fixed CVE-2018-0495 - Various security fixes in the ASN.1 code.
This commit is contained in:
parent
0d5d154158
commit
d36d4eb674
197 changed files with 4873 additions and 7145 deletions
|
|
@ -33,7 +33,3 @@ ifdef NSS_BUILD_CAPI
|
|||
DIRS += capi
|
||||
endif
|
||||
endif
|
||||
|
||||
#ifeq ($(OS_ARCH), Darwin)
|
||||
#DIRS += nssmkey
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -7240,163 +7240,6 @@ CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
|
|||
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
|
||||
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
|
||||
|
||||
#
|
||||
# Certificate "TC TrustCenter Class 3 CA II"
|
||||
#
|
||||
# Issuer: CN=TC TrustCenter Class 3 CA II,OU=TC TrustCenter Class 3 CA,O=TC TrustCenter GmbH,C=DE
|
||||
# Serial Number:4a:47:00:01:00:02:e5:a0:5d:d6:3f:00:51:bf
|
||||
# Subject: CN=TC TrustCenter Class 3 CA II,OU=TC TrustCenter Class 3 CA,O=TC TrustCenter GmbH,C=DE
|
||||
# Not Valid Before: Thu Jan 12 14:41:57 2006
|
||||
# Not Valid After : Wed Dec 31 22:59:59 2025
|
||||
# Fingerprint (MD5): 56:5F:AA:80:61:12:17:F6:67:21:E6:2B:6D:61:56:8E
|
||||
# Fingerprint (SHA1): 80:25:EF:F4:6E:70:C8:D4:72:24:65:84:FE:40:3B:8A:8D:6A:DB:F5
|
||||
CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
|
||||
CKA_TOKEN CK_BBOOL CK_TRUE
|
||||
CKA_PRIVATE CK_BBOOL CK_FALSE
|
||||
CKA_MODIFIABLE CK_BBOOL CK_FALSE
|
||||
CKA_LABEL UTF8 "TC TrustCenter Class 3 CA II"
|
||||
CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
|
||||
CKA_SUBJECT MULTILINE_OCTAL
|
||||
\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061
|
||||
\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165
|
||||
\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060
|
||||
\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164
|
||||
\103\145\156\164\145\162\040\103\154\141\163\163\040\063\040\103
|
||||
\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124
|
||||
\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163
|
||||
\040\063\040\103\101\040\111\111
|
||||
END
|
||||
CKA_ID UTF8 "0"
|
||||
CKA_ISSUER MULTILINE_OCTAL
|
||||
\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061
|
||||
\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165
|
||||
\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060
|
||||
\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164
|
||||
\103\145\156\164\145\162\040\103\154\141\163\163\040\063\040\103
|
||||
\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124
|
||||
\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163
|
||||
\040\063\040\103\101\040\111\111
|
||||
END
|
||||
CKA_SERIAL_NUMBER MULTILINE_OCTAL
|
||||
\002\016\112\107\000\001\000\002\345\240\135\326\077\000\121\277
|
||||
END
|
||||
CKA_VALUE MULTILINE_OCTAL
|
||||
\060\202\004\252\060\202\003\222\240\003\002\001\002\002\016\112
|
||||
\107\000\001\000\002\345\240\135\326\077\000\121\277\060\015\006
|
||||
\011\052\206\110\206\367\015\001\001\005\005\000\060\166\061\013
|
||||
\060\011\006\003\125\004\006\023\002\104\105\061\034\060\032\006
|
||||
\003\125\004\012\023\023\124\103\040\124\162\165\163\164\103\145
|
||||
\156\164\145\162\040\107\155\142\110\061\042\060\040\006\003\125
|
||||
\004\013\023\031\124\103\040\124\162\165\163\164\103\145\156\164
|
||||
\145\162\040\103\154\141\163\163\040\063\040\103\101\061\045\060
|
||||
\043\006\003\125\004\003\023\034\124\103\040\124\162\165\163\164
|
||||
\103\145\156\164\145\162\040\103\154\141\163\163\040\063\040\103
|
||||
\101\040\111\111\060\036\027\015\060\066\060\061\061\062\061\064
|
||||
\064\061\065\067\132\027\015\062\065\061\062\063\061\062\062\065
|
||||
\071\065\071\132\060\166\061\013\060\011\006\003\125\004\006\023
|
||||
\002\104\105\061\034\060\032\006\003\125\004\012\023\023\124\103
|
||||
\040\124\162\165\163\164\103\145\156\164\145\162\040\107\155\142
|
||||
\110\061\042\060\040\006\003\125\004\013\023\031\124\103\040\124
|
||||
\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163
|
||||
\040\063\040\103\101\061\045\060\043\006\003\125\004\003\023\034
|
||||
\124\103\040\124\162\165\163\164\103\145\156\164\145\162\040\103
|
||||
\154\141\163\163\040\063\040\103\101\040\111\111\060\202\001\042
|
||||
\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000\003
|
||||
\202\001\017\000\060\202\001\012\002\202\001\001\000\264\340\273
|
||||
\121\273\071\134\213\004\305\114\171\034\043\206\061\020\143\103
|
||||
\125\047\077\306\105\307\244\075\354\011\015\032\036\040\302\126
|
||||
\036\336\033\067\007\060\042\057\157\361\006\361\253\255\326\310
|
||||
\253\141\243\057\103\304\260\262\055\374\303\226\151\173\176\212
|
||||
\344\314\300\071\022\220\102\140\311\314\065\150\356\332\137\220
|
||||
\126\137\315\034\115\133\130\111\353\016\001\117\144\372\054\074
|
||||
\211\130\330\057\056\342\260\150\351\042\073\165\211\326\104\032
|
||||
\145\362\033\227\046\035\050\155\254\350\275\131\035\053\044\366
|
||||
\326\204\003\146\210\044\000\170\140\361\370\253\376\002\262\153
|
||||
\373\042\373\065\346\026\321\255\366\056\022\344\372\065\152\345
|
||||
\031\271\135\333\073\036\032\373\323\377\025\024\010\330\011\152
|
||||
\272\105\235\024\171\140\175\257\100\212\007\163\263\223\226\323
|
||||
\164\064\215\072\067\051\336\134\354\365\356\056\061\302\040\334
|
||||
\276\361\117\177\043\122\331\133\342\144\331\234\252\007\010\265
|
||||
\105\275\321\320\061\301\253\124\237\251\322\303\142\140\003\361
|
||||
\273\071\112\222\112\075\012\271\235\305\240\376\067\002\003\001
|
||||
\000\001\243\202\001\064\060\202\001\060\060\017\006\003\125\035
|
||||
\023\001\001\377\004\005\060\003\001\001\377\060\016\006\003\125
|
||||
\035\017\001\001\377\004\004\003\002\001\006\060\035\006\003\125
|
||||
\035\016\004\026\004\024\324\242\374\237\263\303\330\003\323\127
|
||||
\134\007\244\320\044\247\300\362\000\324\060\201\355\006\003\125
|
||||
\035\037\004\201\345\060\201\342\060\201\337\240\201\334\240\201
|
||||
\331\206\065\150\164\164\160\072\057\057\167\167\167\056\164\162
|
||||
\165\163\164\143\145\156\164\145\162\056\144\145\057\143\162\154
|
||||
\057\166\062\057\164\143\137\143\154\141\163\163\137\063\137\143
|
||||
\141\137\111\111\056\143\162\154\206\201\237\154\144\141\160\072
|
||||
\057\057\167\167\167\056\164\162\165\163\164\143\145\156\164\145
|
||||
\162\056\144\145\057\103\116\075\124\103\045\062\060\124\162\165
|
||||
\163\164\103\145\156\164\145\162\045\062\060\103\154\141\163\163
|
||||
\045\062\060\063\045\062\060\103\101\045\062\060\111\111\054\117
|
||||
\075\124\103\045\062\060\124\162\165\163\164\103\145\156\164\145
|
||||
\162\045\062\060\107\155\142\110\054\117\125\075\162\157\157\164
|
||||
\143\145\162\164\163\054\104\103\075\164\162\165\163\164\143\145
|
||||
\156\164\145\162\054\104\103\075\144\145\077\143\145\162\164\151
|
||||
\146\151\143\141\164\145\122\145\166\157\143\141\164\151\157\156
|
||||
\114\151\163\164\077\142\141\163\145\077\060\015\006\011\052\206
|
||||
\110\206\367\015\001\001\005\005\000\003\202\001\001\000\066\140
|
||||
\344\160\367\006\040\103\331\043\032\102\362\370\243\262\271\115
|
||||
\212\264\363\302\232\125\061\174\304\073\147\232\264\337\115\016
|
||||
\212\223\112\027\213\033\215\312\211\341\317\072\036\254\035\361
|
||||
\234\062\264\216\131\166\242\101\205\045\067\240\023\320\365\174
|
||||
\116\325\352\226\342\156\162\301\273\052\376\154\156\370\221\230
|
||||
\106\374\311\033\127\133\352\310\032\073\077\260\121\230\074\007
|
||||
\332\054\131\001\332\213\104\350\341\164\375\247\150\335\124\272
|
||||
\203\106\354\310\106\265\370\257\227\300\073\011\034\217\316\162
|
||||
\226\075\063\126\160\274\226\313\330\325\175\040\232\203\237\032
|
||||
\334\071\361\305\162\243\021\003\375\073\102\122\051\333\350\001
|
||||
\367\233\136\214\326\215\206\116\031\372\274\034\276\305\041\245
|
||||
\207\236\170\056\066\333\011\161\243\162\064\370\154\343\006\011
|
||||
\362\136\126\245\323\335\230\372\324\346\006\364\360\266\040\143
|
||||
\113\352\051\275\252\202\146\036\373\201\252\247\067\255\023\030
|
||||
\346\222\303\201\301\063\273\210\036\241\347\342\264\275\061\154
|
||||
\016\121\075\157\373\226\126\200\342\066\027\321\334\344
|
||||
END
|
||||
CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
|
||||
|
||||
# Trust for Certificate "TC TrustCenter Class 3 CA II"
|
||||
# Issuer: CN=TC TrustCenter Class 3 CA II,OU=TC TrustCenter Class 3 CA,O=TC TrustCenter GmbH,C=DE
|
||||
# Serial Number:4a:47:00:01:00:02:e5:a0:5d:d6:3f:00:51:bf
|
||||
# Subject: CN=TC TrustCenter Class 3 CA II,OU=TC TrustCenter Class 3 CA,O=TC TrustCenter GmbH,C=DE
|
||||
# Not Valid Before: Thu Jan 12 14:41:57 2006
|
||||
# Not Valid After : Wed Dec 31 22:59:59 2025
|
||||
# Fingerprint (MD5): 56:5F:AA:80:61:12:17:F6:67:21:E6:2B:6D:61:56:8E
|
||||
# Fingerprint (SHA1): 80:25:EF:F4:6E:70:C8:D4:72:24:65:84:FE:40:3B:8A:8D:6A:DB:F5
|
||||
CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
|
||||
CKA_TOKEN CK_BBOOL CK_TRUE
|
||||
CKA_PRIVATE CK_BBOOL CK_FALSE
|
||||
CKA_MODIFIABLE CK_BBOOL CK_FALSE
|
||||
CKA_LABEL UTF8 "TC TrustCenter Class 3 CA II"
|
||||
CKA_CERT_SHA1_HASH MULTILINE_OCTAL
|
||||
\200\045\357\364\156\160\310\324\162\044\145\204\376\100\073\212
|
||||
\215\152\333\365
|
||||
END
|
||||
CKA_CERT_MD5_HASH MULTILINE_OCTAL
|
||||
\126\137\252\200\141\022\027\366\147\041\346\053\155\141\126\216
|
||||
END
|
||||
CKA_ISSUER MULTILINE_OCTAL
|
||||
\060\166\061\013\060\011\006\003\125\004\006\023\002\104\105\061
|
||||
\034\060\032\006\003\125\004\012\023\023\124\103\040\124\162\165
|
||||
\163\164\103\145\156\164\145\162\040\107\155\142\110\061\042\060
|
||||
\040\006\003\125\004\013\023\031\124\103\040\124\162\165\163\164
|
||||
\103\145\156\164\145\162\040\103\154\141\163\163\040\063\040\103
|
||||
\101\061\045\060\043\006\003\125\004\003\023\034\124\103\040\124
|
||||
\162\165\163\164\103\145\156\164\145\162\040\103\154\141\163\163
|
||||
\040\063\040\103\101\040\111\111
|
||||
END
|
||||
CKA_SERIAL_NUMBER MULTILINE_OCTAL
|
||||
\002\016\112\107\000\001\000\002\345\240\135\326\077\000\121\277
|
||||
END
|
||||
CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
|
||||
CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
|
||||
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
|
||||
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
|
||||
|
||||
#
|
||||
# Certificate "Deutsche Telekom Root CA 2"
|
||||
#
|
||||
|
|
@ -17882,155 +17725,6 @@ CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
|
|||
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
|
||||
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
|
||||
|
||||
#
|
||||
# Certificate "S-TRUST Universal Root CA"
|
||||
#
|
||||
# Issuer: CN=S-TRUST Universal Root CA,OU=S-TRUST Certification Services,O=Deutscher Sparkassen Verlag GmbH,C=DE
|
||||
# Serial Number:60:56:c5:4b:23:40:5b:64:d4:ed:25:da:d9:d6:1e:1e
|
||||
# Subject: CN=S-TRUST Universal Root CA,OU=S-TRUST Certification Services,O=Deutscher Sparkassen Verlag GmbH,C=DE
|
||||
# Not Valid Before: Tue Oct 22 00:00:00 2013
|
||||
# Not Valid After : Thu Oct 21 23:59:59 2038
|
||||
# Fingerprint (SHA-256): D8:0F:EF:91:0A:E3:F1:04:72:3B:04:5C:EC:2D:01:9F:44:1C:E6:21:3A:DF:15:67:91:E7:0C:17:90:11:0A:31
|
||||
# Fingerprint (SHA1): 1B:3D:11:14:EA:7A:0F:95:58:54:41:95:BF:6B:25:82:AB:40:CE:9A
|
||||
CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
|
||||
CKA_TOKEN CK_BBOOL CK_TRUE
|
||||
CKA_PRIVATE CK_BBOOL CK_FALSE
|
||||
CKA_MODIFIABLE CK_BBOOL CK_FALSE
|
||||
CKA_LABEL UTF8 "S-TRUST Universal Root CA"
|
||||
CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
|
||||
CKA_SUBJECT MULTILINE_OCTAL
|
||||
\060\201\205\061\013\060\011\006\003\125\004\006\023\002\104\105
|
||||
\061\051\060\047\006\003\125\004\012\023\040\104\145\165\164\163
|
||||
\143\150\145\162\040\123\160\141\162\153\141\163\163\145\156\040
|
||||
\126\145\162\154\141\147\040\107\155\142\110\061\047\060\045\006
|
||||
\003\125\004\013\023\036\123\055\124\122\125\123\124\040\103\145
|
||||
\162\164\151\146\151\143\141\164\151\157\156\040\123\145\162\166
|
||||
\151\143\145\163\061\042\060\040\006\003\125\004\003\023\031\123
|
||||
\055\124\122\125\123\124\040\125\156\151\166\145\162\163\141\154
|
||||
\040\122\157\157\164\040\103\101
|
||||
END
|
||||
CKA_ID UTF8 "0"
|
||||
CKA_ISSUER MULTILINE_OCTAL
|
||||
\060\201\205\061\013\060\011\006\003\125\004\006\023\002\104\105
|
||||
\061\051\060\047\006\003\125\004\012\023\040\104\145\165\164\163
|
||||
\143\150\145\162\040\123\160\141\162\153\141\163\163\145\156\040
|
||||
\126\145\162\154\141\147\040\107\155\142\110\061\047\060\045\006
|
||||
\003\125\004\013\023\036\123\055\124\122\125\123\124\040\103\145
|
||||
\162\164\151\146\151\143\141\164\151\157\156\040\123\145\162\166
|
||||
\151\143\145\163\061\042\060\040\006\003\125\004\003\023\031\123
|
||||
\055\124\122\125\123\124\040\125\156\151\166\145\162\163\141\154
|
||||
\040\122\157\157\164\040\103\101
|
||||
END
|
||||
CKA_SERIAL_NUMBER MULTILINE_OCTAL
|
||||
\002\020\140\126\305\113\043\100\133\144\324\355\045\332\331\326
|
||||
\036\036
|
||||
END
|
||||
CKA_VALUE MULTILINE_OCTAL
|
||||
\060\202\003\330\060\202\002\300\240\003\002\001\002\002\020\140
|
||||
\126\305\113\043\100\133\144\324\355\045\332\331\326\036\036\060
|
||||
\015\006\011\052\206\110\206\367\015\001\001\013\005\000\060\201
|
||||
\205\061\013\060\011\006\003\125\004\006\023\002\104\105\061\051
|
||||
\060\047\006\003\125\004\012\023\040\104\145\165\164\163\143\150
|
||||
\145\162\040\123\160\141\162\153\141\163\163\145\156\040\126\145
|
||||
\162\154\141\147\040\107\155\142\110\061\047\060\045\006\003\125
|
||||
\004\013\023\036\123\055\124\122\125\123\124\040\103\145\162\164
|
||||
\151\146\151\143\141\164\151\157\156\040\123\145\162\166\151\143
|
||||
\145\163\061\042\060\040\006\003\125\004\003\023\031\123\055\124
|
||||
\122\125\123\124\040\125\156\151\166\145\162\163\141\154\040\122
|
||||
\157\157\164\040\103\101\060\036\027\015\061\063\061\060\062\062
|
||||
\060\060\060\060\060\060\132\027\015\063\070\061\060\062\061\062
|
||||
\063\065\071\065\071\132\060\201\205\061\013\060\011\006\003\125
|
||||
\004\006\023\002\104\105\061\051\060\047\006\003\125\004\012\023
|
||||
\040\104\145\165\164\163\143\150\145\162\040\123\160\141\162\153
|
||||
\141\163\163\145\156\040\126\145\162\154\141\147\040\107\155\142
|
||||
\110\061\047\060\045\006\003\125\004\013\023\036\123\055\124\122
|
||||
\125\123\124\040\103\145\162\164\151\146\151\143\141\164\151\157
|
||||
\156\040\123\145\162\166\151\143\145\163\061\042\060\040\006\003
|
||||
\125\004\003\023\031\123\055\124\122\125\123\124\040\125\156\151
|
||||
\166\145\162\163\141\154\040\122\157\157\164\040\103\101\060\202
|
||||
\001\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005
|
||||
\000\003\202\001\017\000\060\202\001\012\002\202\001\001\000\250
|
||||
\343\013\337\021\067\205\202\232\265\154\146\174\141\077\300\107
|
||||
\032\035\106\343\260\125\144\345\270\202\071\050\007\176\027\377
|
||||
\364\233\212\360\221\201\352\070\077\041\170\154\110\354\153\057
|
||||
\242\323\212\162\262\247\327\331\352\177\264\300\111\153\060\045
|
||||
\211\214\353\267\325\100\141\230\342\334\074\040\222\315\145\112
|
||||
\162\237\032\216\214\372\045\025\277\363\041\203\050\015\213\257
|
||||
\131\021\202\103\134\233\115\045\121\177\130\030\143\140\073\263
|
||||
\265\212\213\130\143\067\110\110\220\104\302\100\335\135\367\103
|
||||
\151\051\230\134\022\145\136\253\220\222\113\146\337\325\165\022
|
||||
\123\124\030\246\336\212\326\273\127\003\071\131\231\030\005\014
|
||||
\371\375\025\306\220\144\106\027\202\327\302\112\101\075\375\000
|
||||
\276\127\162\030\224\167\033\123\132\211\001\366\063\162\016\223
|
||||
\072\334\350\036\375\005\005\326\274\163\340\210\334\253\117\354
|
||||
\265\030\206\117\171\204\016\110\052\146\052\335\062\310\170\145
|
||||
\310\013\235\130\001\005\161\355\201\365\150\027\156\313\015\264
|
||||
\113\330\241\354\256\070\353\034\130\057\241\145\003\064\057\002
|
||||
\003\001\000\001\243\102\060\100\060\017\006\003\125\035\023\001
|
||||
\001\377\004\005\060\003\001\001\377\060\016\006\003\125\035\017
|
||||
\001\001\377\004\004\003\002\001\006\060\035\006\003\125\035\016
|
||||
\004\026\004\024\232\175\327\353\353\177\124\230\105\051\264\040
|
||||
\253\155\013\226\043\031\244\302\060\015\006\011\052\206\110\206
|
||||
\367\015\001\001\013\005\000\003\202\001\001\000\116\226\022\333
|
||||
\176\167\136\222\047\236\041\027\030\202\166\330\077\274\245\011
|
||||
\004\146\210\211\255\333\125\263\063\152\306\145\304\217\115\363
|
||||
\062\066\334\171\004\226\251\167\062\321\227\365\030\153\214\272
|
||||
\355\316\021\320\104\307\222\361\264\104\216\355\210\122\110\236
|
||||
\325\375\131\370\243\036\121\373\001\122\345\137\345\172\335\252
|
||||
\044\117\042\213\335\166\106\366\245\240\017\065\330\312\017\230
|
||||
\271\060\135\040\157\302\201\036\275\275\300\376\025\323\070\052
|
||||
\011\223\230\047\033\223\173\320\053\064\136\150\245\025\117\321
|
||||
\122\303\240\312\240\203\105\035\365\365\267\131\163\135\131\001
|
||||
\217\252\302\107\057\024\161\325\051\343\020\265\107\223\045\314
|
||||
\043\051\332\267\162\330\221\324\354\033\110\212\042\344\301\052
|
||||
\367\072\150\223\237\105\031\156\103\267\314\376\270\221\232\141
|
||||
\032\066\151\143\144\222\050\363\157\141\222\205\023\237\311\007
|
||||
\054\213\127\334\353\236\171\325\302\336\010\325\124\262\127\116
|
||||
\052\062\215\241\342\072\321\020\040\042\071\175\064\105\157\161
|
||||
\073\303\035\374\377\262\117\250\342\366\060\036
|
||||
END
|
||||
CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
|
||||
|
||||
# Trust for "S-TRUST Universal Root CA"
|
||||
# Issuer: CN=S-TRUST Universal Root CA,OU=S-TRUST Certification Services,O=Deutscher Sparkassen Verlag GmbH,C=DE
|
||||
# Serial Number:60:56:c5:4b:23:40:5b:64:d4:ed:25:da:d9:d6:1e:1e
|
||||
# Subject: CN=S-TRUST Universal Root CA,OU=S-TRUST Certification Services,O=Deutscher Sparkassen Verlag GmbH,C=DE
|
||||
# Not Valid Before: Tue Oct 22 00:00:00 2013
|
||||
# Not Valid After : Thu Oct 21 23:59:59 2038
|
||||
# Fingerprint (SHA-256): D8:0F:EF:91:0A:E3:F1:04:72:3B:04:5C:EC:2D:01:9F:44:1C:E6:21:3A:DF:15:67:91:E7:0C:17:90:11:0A:31
|
||||
# Fingerprint (SHA1): 1B:3D:11:14:EA:7A:0F:95:58:54:41:95:BF:6B:25:82:AB:40:CE:9A
|
||||
CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
|
||||
CKA_TOKEN CK_BBOOL CK_TRUE
|
||||
CKA_PRIVATE CK_BBOOL CK_FALSE
|
||||
CKA_MODIFIABLE CK_BBOOL CK_FALSE
|
||||
CKA_LABEL UTF8 "S-TRUST Universal Root CA"
|
||||
CKA_CERT_SHA1_HASH MULTILINE_OCTAL
|
||||
\033\075\021\024\352\172\017\225\130\124\101\225\277\153\045\202
|
||||
\253\100\316\232
|
||||
END
|
||||
CKA_CERT_MD5_HASH MULTILINE_OCTAL
|
||||
\130\366\101\001\256\365\133\121\231\116\134\041\350\117\324\146
|
||||
END
|
||||
CKA_ISSUER MULTILINE_OCTAL
|
||||
\060\201\205\061\013\060\011\006\003\125\004\006\023\002\104\105
|
||||
\061\051\060\047\006\003\125\004\012\023\040\104\145\165\164\163
|
||||
\143\150\145\162\040\123\160\141\162\153\141\163\163\145\156\040
|
||||
\126\145\162\154\141\147\040\107\155\142\110\061\047\060\045\006
|
||||
\003\125\004\013\023\036\123\055\124\122\125\123\124\040\103\145
|
||||
\162\164\151\146\151\143\141\164\151\157\156\040\123\145\162\166
|
||||
\151\143\145\163\061\042\060\040\006\003\125\004\003\023\031\123
|
||||
\055\124\122\125\123\124\040\125\156\151\166\145\162\163\141\154
|
||||
\040\122\157\157\164\040\103\101
|
||||
END
|
||||
CKA_SERIAL_NUMBER MULTILINE_OCTAL
|
||||
\002\020\140\126\305\113\043\100\133\144\324\355\045\332\331\326
|
||||
\036\036
|
||||
END
|
||||
CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
|
||||
CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
|
||||
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
|
||||
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
|
||||
|
||||
#
|
||||
# Certificate "Entrust Root Certification Authority - G2"
|
||||
#
|
||||
|
|
@ -18508,167 +18202,6 @@ CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
|
|||
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
|
||||
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
|
||||
|
||||
#
|
||||
# Certificate "TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5"
|
||||
#
|
||||
# Issuer: CN=T..RKTRUST Elektronik Sertifika Hizmet Sa..lay..c..s.. H5,O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A....,L=Ankara,C=TR
|
||||
# Serial Number:00:8e:17:fe:24:20:81
|
||||
# Subject: CN=T..RKTRUST Elektronik Sertifika Hizmet Sa..lay..c..s.. H5,O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A....,L=Ankara,C=TR
|
||||
# Not Valid Before: Tue Apr 30 08:07:01 2013
|
||||
# Not Valid After : Fri Apr 28 08:07:01 2023
|
||||
# Fingerprint (SHA-256): 49:35:1B:90:34:44:C1:85:CC:DC:5C:69:3D:24:D8:55:5C:B2:08:D6:A8:14:13:07:69:9F:4A:F0:63:19:9D:78
|
||||
# Fingerprint (SHA1): C4:18:F6:4D:46:D1:DF:00:3D:27:30:13:72:43:A9:12:11:C6:75:FB
|
||||
CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE
|
||||
CKA_TOKEN CK_BBOOL CK_TRUE
|
||||
CKA_PRIVATE CK_BBOOL CK_FALSE
|
||||
CKA_MODIFIABLE CK_BBOOL CK_FALSE
|
||||
CKA_LABEL UTF8 "TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5"
|
||||
CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
|
||||
CKA_SUBJECT MULTILINE_OCTAL
|
||||
\060\201\261\061\013\060\011\006\003\125\004\006\023\002\124\122
|
||||
\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162
|
||||
\141\061\115\060\113\006\003\125\004\012\014\104\124\303\234\122
|
||||
\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154
|
||||
\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305
|
||||
\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040
|
||||
\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056
|
||||
\061\102\060\100\006\003\125\004\003\014\071\124\303\234\122\113
|
||||
\124\122\125\123\124\040\105\154\145\153\164\162\157\156\151\153
|
||||
\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145
|
||||
\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304
|
||||
\261\040\110\065
|
||||
END
|
||||
CKA_ID UTF8 "0"
|
||||
CKA_ISSUER MULTILINE_OCTAL
|
||||
\060\201\261\061\013\060\011\006\003\125\004\006\023\002\124\122
|
||||
\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162
|
||||
\141\061\115\060\113\006\003\125\004\012\014\104\124\303\234\122
|
||||
\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154
|
||||
\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305
|
||||
\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040
|
||||
\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056
|
||||
\061\102\060\100\006\003\125\004\003\014\071\124\303\234\122\113
|
||||
\124\122\125\123\124\040\105\154\145\153\164\162\157\156\151\153
|
||||
\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145
|
||||
\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304
|
||||
\261\040\110\065
|
||||
END
|
||||
CKA_SERIAL_NUMBER MULTILINE_OCTAL
|
||||
\002\007\000\216\027\376\044\040\201
|
||||
END
|
||||
CKA_VALUE MULTILINE_OCTAL
|
||||
\060\202\004\047\060\202\003\017\240\003\002\001\002\002\007\000
|
||||
\216\027\376\044\040\201\060\015\006\011\052\206\110\206\367\015
|
||||
\001\001\013\005\000\060\201\261\061\013\060\011\006\003\125\004
|
||||
\006\023\002\124\122\061\017\060\015\006\003\125\004\007\014\006
|
||||
\101\156\153\141\162\141\061\115\060\113\006\003\125\004\012\014
|
||||
\104\124\303\234\122\113\124\122\125\123\124\040\102\151\154\147
|
||||
\151\040\304\260\154\145\164\151\305\237\151\155\040\166\145\040
|
||||
\102\151\154\151\305\237\151\155\040\107\303\274\166\145\156\154
|
||||
\151\304\237\151\040\110\151\172\155\145\164\154\145\162\151\040
|
||||
\101\056\305\236\056\061\102\060\100\006\003\125\004\003\014\071
|
||||
\124\303\234\122\113\124\122\125\123\124\040\105\154\145\153\164
|
||||
\162\157\156\151\153\040\123\145\162\164\151\146\151\153\141\040
|
||||
\110\151\172\155\145\164\040\123\141\304\237\154\141\171\304\261
|
||||
\143\304\261\163\304\261\040\110\065\060\036\027\015\061\063\060
|
||||
\064\063\060\060\070\060\067\060\061\132\027\015\062\063\060\064
|
||||
\062\070\060\070\060\067\060\061\132\060\201\261\061\013\060\011
|
||||
\006\003\125\004\006\023\002\124\122\061\017\060\015\006\003\125
|
||||
\004\007\014\006\101\156\153\141\162\141\061\115\060\113\006\003
|
||||
\125\004\012\014\104\124\303\234\122\113\124\122\125\123\124\040
|
||||
\102\151\154\147\151\040\304\260\154\145\164\151\305\237\151\155
|
||||
\040\166\145\040\102\151\154\151\305\237\151\155\040\107\303\274
|
||||
\166\145\156\154\151\304\237\151\040\110\151\172\155\145\164\154
|
||||
\145\162\151\040\101\056\305\236\056\061\102\060\100\006\003\125
|
||||
\004\003\014\071\124\303\234\122\113\124\122\125\123\124\040\105
|
||||
\154\145\153\164\162\157\156\151\153\040\123\145\162\164\151\146
|
||||
\151\153\141\040\110\151\172\155\145\164\040\123\141\304\237\154
|
||||
\141\171\304\261\143\304\261\163\304\261\040\110\065\060\202\001
|
||||
\042\060\015\006\011\052\206\110\206\367\015\001\001\001\005\000
|
||||
\003\202\001\017\000\060\202\001\012\002\202\001\001\000\244\045
|
||||
\031\341\145\236\353\110\041\120\112\010\345\021\360\132\272\046
|
||||
\377\203\131\316\104\052\057\376\341\316\140\003\374\215\003\245
|
||||
\355\377\153\250\272\314\064\006\237\131\065\366\354\054\273\235
|
||||
\373\215\122\151\343\234\047\020\123\363\244\002\305\247\371\021
|
||||
\032\151\165\156\303\035\213\321\230\215\223\207\247\161\227\015
|
||||
\041\307\231\371\122\323\054\143\135\125\274\350\037\001\110\271
|
||||
\140\376\102\112\366\310\200\256\315\146\172\236\105\212\150\167
|
||||
\342\110\150\237\242\332\361\341\301\020\237\353\074\051\201\247
|
||||
\341\062\010\324\240\005\261\214\373\215\226\000\016\076\045\337
|
||||
\123\206\042\073\374\364\275\363\011\176\167\354\206\353\017\063
|
||||
\345\103\117\364\124\165\155\051\231\056\146\132\103\337\313\134
|
||||
\312\310\345\070\361\176\073\065\235\017\364\305\132\241\314\363
|
||||
\040\200\044\323\127\354\025\272\165\045\233\350\144\113\263\064
|
||||
\204\357\004\270\366\311\154\252\002\076\266\125\342\062\067\137
|
||||
\374\146\227\137\315\326\236\307\040\277\115\306\254\077\165\137
|
||||
\034\355\062\234\174\151\000\151\221\343\043\030\123\351\002\003
|
||||
\001\000\001\243\102\060\100\060\035\006\003\125\035\016\004\026
|
||||
\004\024\126\231\007\036\323\254\014\151\144\264\014\120\107\336
|
||||
\103\054\276\040\300\373\060\016\006\003\125\035\017\001\001\377
|
||||
\004\004\003\002\001\006\060\017\006\003\125\035\023\001\001\377
|
||||
\004\005\060\003\001\001\377\060\015\006\011\052\206\110\206\367
|
||||
\015\001\001\013\005\000\003\202\001\001\000\236\105\166\173\027
|
||||
\110\062\362\070\213\051\275\356\226\112\116\201\030\261\121\107
|
||||
\040\315\320\144\261\016\311\331\001\331\011\316\310\231\334\150
|
||||
\045\023\324\134\362\243\350\004\376\162\011\307\013\252\035\045
|
||||
\125\176\226\232\127\267\272\305\021\172\031\346\247\176\075\205
|
||||
\016\365\371\056\051\057\347\371\154\130\026\127\120\045\366\076
|
||||
\056\076\252\355\167\161\252\252\231\226\106\012\256\216\354\052
|
||||
\121\026\260\136\315\352\147\004\034\130\060\365\140\212\275\246
|
||||
\275\115\345\226\264\374\102\211\001\153\366\160\310\120\071\014
|
||||
\055\325\146\331\310\322\263\062\267\033\031\155\313\063\371\337
|
||||
\245\346\025\204\067\360\302\362\145\226\222\220\167\360\255\364
|
||||
\220\351\021\170\327\223\211\300\075\013\272\051\364\350\231\235
|
||||
\162\216\355\235\057\356\222\175\241\361\377\135\272\063\140\205
|
||||
\142\376\007\002\241\204\126\106\276\226\012\232\023\327\041\114
|
||||
\267\174\007\237\116\116\077\221\164\373\047\235\021\314\335\346
|
||||
\261\312\161\115\023\027\071\046\305\051\041\053\223\051\152\226
|
||||
\372\253\101\341\113\266\065\013\300\233\025
|
||||
END
|
||||
CKA_NSS_MOZILLA_CA_POLICY CK_BBOOL CK_TRUE
|
||||
|
||||
# Trust for "TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5"
|
||||
# Issuer: CN=T..RKTRUST Elektronik Sertifika Hizmet Sa..lay..c..s.. H5,O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A....,L=Ankara,C=TR
|
||||
# Serial Number:00:8e:17:fe:24:20:81
|
||||
# Subject: CN=T..RKTRUST Elektronik Sertifika Hizmet Sa..lay..c..s.. H5,O=T..RKTRUST Bilgi ..leti..im ve Bili..im G..venli..i Hizmetleri A....,L=Ankara,C=TR
|
||||
# Not Valid Before: Tue Apr 30 08:07:01 2013
|
||||
# Not Valid After : Fri Apr 28 08:07:01 2023
|
||||
# Fingerprint (SHA-256): 49:35:1B:90:34:44:C1:85:CC:DC:5C:69:3D:24:D8:55:5C:B2:08:D6:A8:14:13:07:69:9F:4A:F0:63:19:9D:78
|
||||
# Fingerprint (SHA1): C4:18:F6:4D:46:D1:DF:00:3D:27:30:13:72:43:A9:12:11:C6:75:FB
|
||||
CKA_CLASS CK_OBJECT_CLASS CKO_NSS_TRUST
|
||||
CKA_TOKEN CK_BBOOL CK_TRUE
|
||||
CKA_PRIVATE CK_BBOOL CK_FALSE
|
||||
CKA_MODIFIABLE CK_BBOOL CK_FALSE
|
||||
CKA_LABEL UTF8 "TÜRKTRUST Elektronik Sertifika Hizmet Sağlayıcısı H5"
|
||||
CKA_CERT_SHA1_HASH MULTILINE_OCTAL
|
||||
\304\030\366\115\106\321\337\000\075\047\060\023\162\103\251\022
|
||||
\021\306\165\373
|
||||
END
|
||||
CKA_CERT_MD5_HASH MULTILINE_OCTAL
|
||||
\332\160\216\360\042\337\223\046\366\137\237\323\025\006\122\116
|
||||
END
|
||||
CKA_ISSUER MULTILINE_OCTAL
|
||||
\060\201\261\061\013\060\011\006\003\125\004\006\023\002\124\122
|
||||
\061\017\060\015\006\003\125\004\007\014\006\101\156\153\141\162
|
||||
\141\061\115\060\113\006\003\125\004\012\014\104\124\303\234\122
|
||||
\113\124\122\125\123\124\040\102\151\154\147\151\040\304\260\154
|
||||
\145\164\151\305\237\151\155\040\166\145\040\102\151\154\151\305
|
||||
\237\151\155\040\107\303\274\166\145\156\154\151\304\237\151\040
|
||||
\110\151\172\155\145\164\154\145\162\151\040\101\056\305\236\056
|
||||
\061\102\060\100\006\003\125\004\003\014\071\124\303\234\122\113
|
||||
\124\122\125\123\124\040\105\154\145\153\164\162\157\156\151\153
|
||||
\040\123\145\162\164\151\146\151\153\141\040\110\151\172\155\145
|
||||
\164\040\123\141\304\237\154\141\171\304\261\143\304\261\163\304
|
||||
\261\040\110\065
|
||||
END
|
||||
CKA_SERIAL_NUMBER MULTILINE_OCTAL
|
||||
\002\007\000\216\027\376\044\040\201
|
||||
END
|
||||
CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NSS_TRUSTED_DELEGATOR
|
||||
CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
|
||||
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NSS_MUST_VERIFY_TRUST
|
||||
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
|
||||
|
||||
#
|
||||
# Certificate "Certinomis - Root CA"
|
||||
#
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
* - whenever possible, if older branches require a modification to the
|
||||
* list, these changes should be made on the main line of development (trunk),
|
||||
* and the older branches should update to the most recent list.
|
||||
*
|
||||
*
|
||||
* - ODD minor version numbers are reserved to indicate a snapshot that has
|
||||
* deviated from the main line of development, e.g. if it was necessary
|
||||
* to modify the list on a stable branch.
|
||||
|
|
@ -46,8 +46,8 @@
|
|||
* It's recommend to switch back to 0 after having reached version 98/99.
|
||||
*/
|
||||
#define NSS_BUILTINS_LIBRARY_VERSION_MAJOR 2
|
||||
#define NSS_BUILTINS_LIBRARY_VERSION_MINOR 22
|
||||
#define NSS_BUILTINS_LIBRARY_VERSION "2.22"
|
||||
#define NSS_BUILTINS_LIBRARY_VERSION_MINOR 24
|
||||
#define NSS_BUILTINS_LIBRARY_VERSION "2.24"
|
||||
|
||||
/* These version numbers detail the semantic changes to the ckfw engine. */
|
||||
#define NSS_BUILTINS_HARDWARE_VERSION_MAJOR 1
|
||||
|
|
|
|||
|
|
@ -1,72 +0,0 @@
|
|||
#
|
||||
# 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/.
|
||||
|
||||
include manifest.mn
|
||||
include $(CORE_DEPTH)/coreconf/config.mk
|
||||
include config.mk
|
||||
|
||||
EXTRA_LIBS = \
|
||||
$(DIST)/lib/$(LIB_PREFIX)nssckfw.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)secutil.$(LIB_SUFFIX) \
|
||||
$(DIST)/lib/$(LIB_PREFIX)nssb.$(LIB_SUFFIX) \
|
||||
$(NULL)
|
||||
|
||||
# can't do this in manifest.mn because OS_TARGET isn't defined there.
|
||||
ifeq (,$(filter-out WIN%,$(OS_TARGET)))
|
||||
|
||||
ifdef NS_USE_GCC
|
||||
EXTRA_LIBS += \
|
||||
-L$(NSPR_LIB_DIR) \
|
||||
-lplc4 \
|
||||
-lplds4 \
|
||||
-lnspr4 \
|
||||
$(NULL)
|
||||
else
|
||||
EXTRA_SHARED_LIBS += \
|
||||
$(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)plc4.lib \
|
||||
$(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)plds4.lib \
|
||||
$(NSPR_LIB_DIR)/$(NSPR31_LIB_PREFIX)nspr4.lib \
|
||||
$(NULL)
|
||||
endif # NS_USE_GCC
|
||||
else
|
||||
|
||||
EXTRA_LIBS += \
|
||||
-L$(NSPR_LIB_DIR) \
|
||||
-lplc4 \
|
||||
-lplds4 \
|
||||
-lnspr4 \
|
||||
-framework Security \
|
||||
-framework CoreServices \
|
||||
$(NULL)
|
||||
endif
|
||||
|
||||
|
||||
include $(CORE_DEPTH)/coreconf/rules.mk
|
||||
|
||||
# Generate certdata.c.
|
||||
generate:
|
||||
perl certdata.perl < certdata.txt
|
||||
|
||||
# This'll need some help from a build person.
|
||||
|
||||
|
||||
ifeq ($(OS_TARGET)$(OS_RELEASE), AIX4.1)
|
||||
DSO_LDOPTS = -bM:SRE -bh:4 -bnoentry
|
||||
EXTRA_DSO_LDOPTS = -lc
|
||||
MKSHLIB = xlC $(DSO_LDOPTS)
|
||||
|
||||
$(SHARED_LIBRARY): $(OBJS)
|
||||
@$(MAKE_OBJDIR)
|
||||
rm -f $@
|
||||
$(MKSHLIB) -o $@ $(OBJS) $(EXTRA_LIBS) $(EXTRA_DSO_LDOPTS)
|
||||
chmod +x $@
|
||||
|
||||
endif
|
||||
|
||||
ifeq ($(OS_TARGET)$(OS_RELEASE), AIX4.2)
|
||||
LD += -G
|
||||
endif
|
||||
|
||||
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
This Cryptoki module provides acces to certs and keys stored in
|
||||
Macintosh key Ring.
|
||||
|
||||
- It does not yet export PKCS #12 keys. To get this to work should be
|
||||
implemented using exporting the key object in PKCS #8 wrapped format.
|
||||
PSM work needs to happen before this can be completed.
|
||||
- It does not import or export CA Root trust from the mac keychain.
|
||||
- It does not handle S/MIME objects (pkcs #7 in mac keychain terms?).
|
||||
- The AuthRoots don't show up on the default list.
|
||||
- Only RSA keys are supported currently.
|
||||
|
||||
There are a number of things that have not been tested that other PKCS #11
|
||||
apps may need:
|
||||
- reading Modulus and Public Exponents from private keys and public keys.
|
||||
- storing public keys.
|
||||
- setting attributes other than CKA_ID and CKA_LABEL.
|
||||
|
||||
Other TODOs:
|
||||
- Check for and plug memory leaks.
|
||||
- Need to map mac errors into something more intellegible than
|
||||
CKR_GENERAL_ERROR.
|
||||
|
|
@ -1,182 +0,0 @@
|
|||
/* 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 CKMK_H
|
||||
#define CKMK_H 1
|
||||
|
||||
#include <Security/SecKeychainSearch.h>
|
||||
#include <Security/SecKeychainItem.h>
|
||||
#include <Security/SecKeychain.h>
|
||||
#include <Security/cssmtype.h>
|
||||
#include <Security/cssmapi.h>
|
||||
#include <Security/SecKey.h>
|
||||
#include <Security/SecCertificate.h>
|
||||
|
||||
#define NTO
|
||||
|
||||
#include "nssckmdt.h"
|
||||
#include "nssckfw.h"
|
||||
/*
|
||||
* I'm including this for access to the arena functions.
|
||||
* Looks like we should publish that API.
|
||||
*/
|
||||
#ifndef BASE_H
|
||||
#include "base.h"
|
||||
#endif /* BASE_H */
|
||||
/*
|
||||
* This is where the Netscape extensions live, at least for now.
|
||||
*/
|
||||
#ifndef CKT_H
|
||||
#include "ckt.h"
|
||||
#endif /* CKT_H */
|
||||
|
||||
/*
|
||||
* statically defined raw objects. Allows us to data description objects
|
||||
* to this PKCS #11 module.
|
||||
*/
|
||||
struct ckmkRawObjectStr {
|
||||
CK_ULONG n;
|
||||
const CK_ATTRIBUTE_TYPE *types;
|
||||
const NSSItem *items;
|
||||
};
|
||||
typedef struct ckmkRawObjectStr ckmkRawObject;
|
||||
|
||||
/*
|
||||
* Key/Cert Items
|
||||
*/
|
||||
struct ckmkItemObjectStr {
|
||||
SecKeychainItemRef itemRef;
|
||||
SecItemClass itemClass;
|
||||
PRBool hasID;
|
||||
NSSItem modify;
|
||||
NSSItem private;
|
||||
NSSItem encrypt;
|
||||
NSSItem decrypt;
|
||||
NSSItem derive;
|
||||
NSSItem sign;
|
||||
NSSItem signRecover;
|
||||
NSSItem verify;
|
||||
NSSItem verifyRecover;
|
||||
NSSItem wrap;
|
||||
NSSItem unwrap;
|
||||
NSSItem label;
|
||||
NSSItem subject;
|
||||
NSSItem issuer;
|
||||
NSSItem serial;
|
||||
NSSItem derCert;
|
||||
NSSItem id;
|
||||
NSSItem modulus;
|
||||
NSSItem exponent;
|
||||
NSSItem privateExponent;
|
||||
NSSItem prime1;
|
||||
NSSItem prime2;
|
||||
NSSItem exponent1;
|
||||
NSSItem exponent2;
|
||||
NSSItem coefficient;
|
||||
};
|
||||
typedef struct ckmkItemObjectStr ckmkItemObject;
|
||||
|
||||
typedef enum {
|
||||
ckmkRaw,
|
||||
ckmkItem,
|
||||
} ckmkObjectType;
|
||||
|
||||
/*
|
||||
* all the various types of objects are abstracted away in cobject and
|
||||
* cfind as ckmkInternalObjects.
|
||||
*/
|
||||
struct ckmkInternalObjectStr {
|
||||
ckmkObjectType type;
|
||||
union {
|
||||
ckmkRawObject raw;
|
||||
ckmkItemObject item;
|
||||
} u;
|
||||
CK_OBJECT_CLASS objClass;
|
||||
NSSItem hashKey;
|
||||
unsigned char hashKeyData[128];
|
||||
NSSCKMDObject mdObject;
|
||||
};
|
||||
typedef struct ckmkInternalObjectStr ckmkInternalObject;
|
||||
|
||||
/* our raw object data array */
|
||||
NSS_EXTERN_DATA ckmkInternalObject nss_ckmk_data[];
|
||||
NSS_EXTERN_DATA const PRUint32 nss_ckmk_nObjects;
|
||||
|
||||
NSS_EXTERN_DATA const CK_VERSION nss_ckmk_CryptokiVersion;
|
||||
NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_ManufacturerID;
|
||||
NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_LibraryDescription;
|
||||
NSS_EXTERN_DATA const CK_VERSION nss_ckmk_LibraryVersion;
|
||||
NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_SlotDescription;
|
||||
NSS_EXTERN_DATA const CK_VERSION nss_ckmk_HardwareVersion;
|
||||
NSS_EXTERN_DATA const CK_VERSION nss_ckmk_FirmwareVersion;
|
||||
NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_TokenLabel;
|
||||
NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_TokenModel;
|
||||
NSS_EXTERN_DATA const NSSUTF8 *nss_ckmk_TokenSerialNumber;
|
||||
|
||||
NSS_EXTERN_DATA const NSSCKMDInstance nss_ckmk_mdInstance;
|
||||
NSS_EXTERN_DATA const NSSCKMDSlot nss_ckmk_mdSlot;
|
||||
NSS_EXTERN_DATA const NSSCKMDToken nss_ckmk_mdToken;
|
||||
NSS_EXTERN_DATA const NSSCKMDMechanism nss_ckmk_mdMechanismRSA;
|
||||
|
||||
NSS_EXTERN NSSCKMDSession *
|
||||
nss_ckmk_CreateSession(
|
||||
NSSCKFWSession *fwSession,
|
||||
CK_RV *pError);
|
||||
|
||||
NSS_EXTERN NSSCKMDFindObjects *
|
||||
nss_ckmk_FindObjectsInit(
|
||||
NSSCKFWSession *fwSession,
|
||||
CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulAttributeCount,
|
||||
CK_RV *pError);
|
||||
|
||||
/*
|
||||
* Object Utilities
|
||||
*/
|
||||
NSS_EXTERN NSSCKMDObject *
|
||||
nss_ckmk_CreateMDObject(
|
||||
NSSArena *arena,
|
||||
ckmkInternalObject *io,
|
||||
CK_RV *pError);
|
||||
|
||||
NSS_EXTERN NSSCKMDObject *
|
||||
nss_ckmk_CreateObject(
|
||||
NSSCKFWSession *fwSession,
|
||||
CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulAttributeCount,
|
||||
CK_RV *pError);
|
||||
|
||||
NSS_EXTERN const NSSItem *
|
||||
nss_ckmk_FetchAttribute(
|
||||
ckmkInternalObject *io,
|
||||
CK_ATTRIBUTE_TYPE type,
|
||||
CK_RV *pError);
|
||||
|
||||
NSS_EXTERN void
|
||||
nss_ckmk_DestroyInternalObject(
|
||||
ckmkInternalObject *io);
|
||||
|
||||
unsigned char *
|
||||
nss_ckmk_DERUnwrap(
|
||||
unsigned char *src,
|
||||
int size,
|
||||
int *outSize,
|
||||
unsigned char **next);
|
||||
|
||||
CK_ULONG
|
||||
nss_ckmk_GetULongAttribute(
|
||||
CK_ATTRIBUTE_TYPE type,
|
||||
CK_ATTRIBUTE *template,
|
||||
CK_ULONG templateSize,
|
||||
CK_RV *pError);
|
||||
|
||||
#define NSS_CKMK_ARRAY_SIZE(x) ((sizeof(x)) / (sizeof((x)[0])))
|
||||
|
||||
#ifdef DEBUG
|
||||
#define CKMK_MACERR(str, err) cssmPerror(str, err)
|
||||
#else
|
||||
#define CKMK_MACERR(str, err)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
/* 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/. */
|
||||
/* Library identity and versioning */
|
||||
|
||||
#include "nssmkey.h"
|
||||
|
||||
#if defined(DEBUG)
|
||||
#define _DEBUG_STRING " (debug)"
|
||||
#else
|
||||
#define _DEBUG_STRING ""
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Version information
|
||||
*/
|
||||
const char __nss_ckmk_version[] = "Version: NSS Access to the MAC OS X Key Ring " NSS_CKMK_LIBRARY_VERSION _DEBUG_STRING;
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
#
|
||||
# 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/.
|
||||
|
||||
ifdef BUILD_IDG
|
||||
DEFINES += -DNSSDEBUG
|
||||
endif
|
||||
|
||||
ifdef NS_USE_CKFW_TRACE
|
||||
DEFINES += -DTRACE
|
||||
endif
|
||||
|
||||
#
|
||||
# Override TARGETS variable so that only static libraries
|
||||
# are specifed as dependencies within rules.mk.
|
||||
#
|
||||
|
||||
TARGETS = $(LIBRARY)
|
||||
SHARED_LIBRARY =
|
||||
IMPORT_LIBRARY =
|
||||
PROGRAM =
|
||||
|
||||
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
/*
|
||||
* nssmkey/manchor.c
|
||||
*
|
||||
* This file "anchors" the actual cryptoki entry points in this module's
|
||||
* shared library, which is required for dynamic loading. See the
|
||||
* comments in nssck.api for more information.
|
||||
*/
|
||||
|
||||
#include "ckmk.h"
|
||||
|
||||
#define MODULE_NAME ckmk
|
||||
#define INSTANCE_NAME (NSSCKMDInstance *)&nss_ckmk_mdInstance
|
||||
#include "nssck.api"
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
#
|
||||
# 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/.
|
||||
|
||||
CORE_DEPTH = ../../../..
|
||||
|
||||
MODULE = nss
|
||||
MAPFILE = $(OBJDIR)/nssmkey.def
|
||||
|
||||
EXPORTS = \
|
||||
nssmkey.h \
|
||||
$(NULL)
|
||||
|
||||
CSRCS = \
|
||||
manchor.c \
|
||||
mconstants.c \
|
||||
mfind.c \
|
||||
minst.c \
|
||||
mobject.c \
|
||||
mrsa.c \
|
||||
msession.c \
|
||||
mslot.c \
|
||||
mtoken.c \
|
||||
ckmkver.c \
|
||||
staticobj.c \
|
||||
$(NULL)
|
||||
|
||||
REQUIRES = nspr
|
||||
|
||||
LIBRARY_NAME = nssmkey
|
||||
|
||||
#EXTRA_SHARED_LIBS = -L$(DIST)/lib -lnssckfw -lnssb -lplc4 -lplds4
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
/*
|
||||
* nssmkey/constants.c
|
||||
*
|
||||
* Identification and other constants, all collected here in one place.
|
||||
*/
|
||||
|
||||
#ifndef NSSBASET_H
|
||||
#include "nssbaset.h"
|
||||
#endif /* NSSBASET_H */
|
||||
|
||||
#ifndef NSSCKT_H
|
||||
#include "nssckt.h"
|
||||
#endif /* NSSCKT_H */
|
||||
|
||||
#include "nssmkey.h"
|
||||
|
||||
NSS_IMPLEMENT_DATA const CK_VERSION
|
||||
nss_ckmk_CryptokiVersion = {
|
||||
NSS_CKMK_CRYPTOKI_VERSION_MAJOR,
|
||||
NSS_CKMK_CRYPTOKI_VERSION_MINOR
|
||||
};
|
||||
|
||||
NSS_IMPLEMENT_DATA const NSSUTF8 *
|
||||
nss_ckmk_ManufacturerID = (NSSUTF8 *)"Mozilla Foundation";
|
||||
|
||||
NSS_IMPLEMENT_DATA const NSSUTF8 *
|
||||
nss_ckmk_LibraryDescription = (NSSUTF8 *)"NSS Access to Mac OS X Key Ring";
|
||||
|
||||
NSS_IMPLEMENT_DATA const CK_VERSION
|
||||
nss_ckmk_LibraryVersion = {
|
||||
NSS_CKMK_LIBRARY_VERSION_MAJOR,
|
||||
NSS_CKMK_LIBRARY_VERSION_MINOR
|
||||
};
|
||||
|
||||
NSS_IMPLEMENT_DATA const NSSUTF8 *
|
||||
nss_ckmk_SlotDescription = (NSSUTF8 *)"Mac OS X Key Ring";
|
||||
|
||||
NSS_IMPLEMENT_DATA const CK_VERSION
|
||||
nss_ckmk_HardwareVersion = {
|
||||
NSS_CKMK_HARDWARE_VERSION_MAJOR,
|
||||
NSS_CKMK_HARDWARE_VERSION_MINOR
|
||||
};
|
||||
|
||||
NSS_IMPLEMENT_DATA const CK_VERSION
|
||||
nss_ckmk_FirmwareVersion = {
|
||||
NSS_CKMK_FIRMWARE_VERSION_MAJOR,
|
||||
NSS_CKMK_FIRMWARE_VERSION_MINOR
|
||||
};
|
||||
|
||||
NSS_IMPLEMENT_DATA const NSSUTF8 *
|
||||
nss_ckmk_TokenLabel = (NSSUTF8 *)"Mac OS X Key Ring";
|
||||
|
||||
NSS_IMPLEMENT_DATA const NSSUTF8 *
|
||||
nss_ckmk_TokenModel = (NSSUTF8 *)"1";
|
||||
|
||||
NSS_IMPLEMENT_DATA const NSSUTF8 *
|
||||
nss_ckmk_TokenSerialNumber = (NSSUTF8 *)"1";
|
||||
|
|
@ -1,352 +0,0 @@
|
|||
/* 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 CKMK_H
|
||||
#include "ckmk.h"
|
||||
#endif /* CKMK_H */
|
||||
|
||||
/*
|
||||
* nssmkey/mfind.c
|
||||
*
|
||||
* This file implements the NSSCKMDFindObjects object for the
|
||||
* "nssmkey" cryptoki module.
|
||||
*/
|
||||
|
||||
struct ckmkFOStr {
|
||||
NSSArena *arena;
|
||||
CK_ULONG n;
|
||||
CK_ULONG i;
|
||||
ckmkInternalObject **objs;
|
||||
};
|
||||
|
||||
static void
|
||||
ckmk_mdFindObjects_Final(
|
||||
NSSCKMDFindObjects *mdFindObjects,
|
||||
NSSCKFWFindObjects *fwFindObjects,
|
||||
NSSCKMDSession *mdSession,
|
||||
NSSCKFWSession *fwSession,
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance)
|
||||
{
|
||||
struct ckmkFOStr *fo = (struct ckmkFOStr *)mdFindObjects->etc;
|
||||
NSSArena *arena = fo->arena;
|
||||
PRUint32 i;
|
||||
|
||||
/* walk down an free the unused 'objs' */
|
||||
for (i = fo->i; i < fo->n; i++) {
|
||||
nss_ckmk_DestroyInternalObject(fo->objs[i]);
|
||||
}
|
||||
|
||||
nss_ZFreeIf(fo->objs);
|
||||
nss_ZFreeIf(fo);
|
||||
nss_ZFreeIf(mdFindObjects);
|
||||
if ((NSSArena *)NULL != arena) {
|
||||
NSSArena_Destroy(arena);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
static NSSCKMDObject *
|
||||
ckmk_mdFindObjects_Next(
|
||||
NSSCKMDFindObjects *mdFindObjects,
|
||||
NSSCKFWFindObjects *fwFindObjects,
|
||||
NSSCKMDSession *mdSession,
|
||||
NSSCKFWSession *fwSession,
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
NSSArena *arena,
|
||||
CK_RV *pError)
|
||||
{
|
||||
struct ckmkFOStr *fo = (struct ckmkFOStr *)mdFindObjects->etc;
|
||||
ckmkInternalObject *io;
|
||||
|
||||
if (fo->i == fo->n) {
|
||||
*pError = CKR_OK;
|
||||
return (NSSCKMDObject *)NULL;
|
||||
}
|
||||
|
||||
io = fo->objs[fo->i];
|
||||
fo->i++;
|
||||
|
||||
return nss_ckmk_CreateMDObject(arena, io, pError);
|
||||
}
|
||||
|
||||
static CK_BBOOL
|
||||
ckmk_attrmatch(
|
||||
CK_ATTRIBUTE_PTR a,
|
||||
ckmkInternalObject *o)
|
||||
{
|
||||
PRBool prb;
|
||||
const NSSItem *b;
|
||||
CK_RV error;
|
||||
|
||||
b = nss_ckmk_FetchAttribute(o, a->type, &error);
|
||||
if (b == NULL) {
|
||||
return CK_FALSE;
|
||||
}
|
||||
|
||||
if (a->ulValueLen != b->size) {
|
||||
/* match a decoded serial number */
|
||||
if ((a->type == CKA_SERIAL_NUMBER) && (a->ulValueLen < b->size)) {
|
||||
int len;
|
||||
unsigned char *data;
|
||||
|
||||
data = nss_ckmk_DERUnwrap(b->data, b->size, &len, NULL);
|
||||
if ((len == a->ulValueLen) &&
|
||||
nsslibc_memequal(a->pValue, data, len, (PRStatus *)NULL)) {
|
||||
return CK_TRUE;
|
||||
}
|
||||
}
|
||||
return CK_FALSE;
|
||||
}
|
||||
|
||||
prb = nsslibc_memequal(a->pValue, b->data, b->size, (PRStatus *)NULL);
|
||||
|
||||
if (PR_TRUE == prb) {
|
||||
return CK_TRUE;
|
||||
} else {
|
||||
return CK_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
static CK_BBOOL
|
||||
ckmk_match(
|
||||
CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulAttributeCount,
|
||||
ckmkInternalObject *o)
|
||||
{
|
||||
CK_ULONG i;
|
||||
|
||||
for (i = 0; i < ulAttributeCount; i++) {
|
||||
if (CK_FALSE == ckmk_attrmatch(&pTemplate[i], o)) {
|
||||
return CK_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/* Every attribute passed */
|
||||
return CK_TRUE;
|
||||
}
|
||||
|
||||
#define CKMK_ITEM_CHUNK 20
|
||||
|
||||
#define PUT_OBJECT(obj, err, size, count, list) \
|
||||
{ \
|
||||
if (count >= size) { \
|
||||
(list) = (list) ? nss_ZREALLOCARRAY(list, ckmkInternalObject *, \
|
||||
((size) + \
|
||||
CKMK_ITEM_CHUNK)) \
|
||||
: nss_ZNEWARRAY(NULL, ckmkInternalObject *, \
|
||||
((size) + \
|
||||
CKMK_ITEM_CHUNK)); \
|
||||
if ((ckmkInternalObject **)NULL == list) { \
|
||||
err = CKR_HOST_MEMORY; \
|
||||
goto loser; \
|
||||
} \
|
||||
(size) += CKMK_ITEM_CHUNK; \
|
||||
} \
|
||||
(list)[count] = (obj); \
|
||||
count++; \
|
||||
}
|
||||
|
||||
/* find all the certs that represent the appropriate object (cert, priv key, or
|
||||
* pub key) in the cert store.
|
||||
*/
|
||||
static PRUint32
|
||||
collect_class(
|
||||
CK_OBJECT_CLASS objClass,
|
||||
SecItemClass itemClass,
|
||||
CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulAttributeCount,
|
||||
ckmkInternalObject ***listp,
|
||||
PRUint32 *sizep,
|
||||
PRUint32 count,
|
||||
CK_RV *pError)
|
||||
{
|
||||
ckmkInternalObject *next = NULL;
|
||||
SecKeychainSearchRef searchRef = 0;
|
||||
SecKeychainItemRef itemRef = 0;
|
||||
OSStatus error;
|
||||
|
||||
/* future, build the attribute list based on the template
|
||||
* so we can refine the search */
|
||||
error = SecKeychainSearchCreateFromAttributes(
|
||||
NULL, itemClass, NULL, &searchRef);
|
||||
|
||||
while (noErr == SecKeychainSearchCopyNext(searchRef, &itemRef)) {
|
||||
/* if we don't have an internal object structure, get one */
|
||||
if ((ckmkInternalObject *)NULL == next) {
|
||||
next = nss_ZNEW(NULL, ckmkInternalObject);
|
||||
if ((ckmkInternalObject *)NULL == next) {
|
||||
*pError = CKR_HOST_MEMORY;
|
||||
goto loser;
|
||||
}
|
||||
}
|
||||
/* fill in the relevant object data */
|
||||
next->type = ckmkItem;
|
||||
next->objClass = objClass;
|
||||
next->u.item.itemRef = itemRef;
|
||||
next->u.item.itemClass = itemClass;
|
||||
|
||||
/* see if this is one of the objects we are looking for */
|
||||
if (CK_TRUE == ckmk_match(pTemplate, ulAttributeCount, next)) {
|
||||
/* yes, put it on the list */
|
||||
PUT_OBJECT(next, *pError, *sizep, count, *listp);
|
||||
next = NULL; /* this one is on the list, need to allocate a new one now */
|
||||
} else {
|
||||
/* no , release the current item and clear out the structure for reuse */
|
||||
CFRelease(itemRef);
|
||||
/* don't cache the values we just loaded */
|
||||
nsslibc_memset(next, 0, sizeof(*next));
|
||||
}
|
||||
}
|
||||
loser:
|
||||
if (searchRef) {
|
||||
CFRelease(searchRef);
|
||||
}
|
||||
nss_ZFreeIf(next);
|
||||
return count;
|
||||
}
|
||||
|
||||
static PRUint32
|
||||
collect_objects(
|
||||
CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulAttributeCount,
|
||||
ckmkInternalObject ***listp,
|
||||
CK_RV *pError)
|
||||
{
|
||||
PRUint32 i;
|
||||
PRUint32 count = 0;
|
||||
PRUint32 size = 0;
|
||||
CK_OBJECT_CLASS objClass;
|
||||
|
||||
/*
|
||||
* first handle the static build in objects (if any)
|
||||
*/
|
||||
for (i = 0; i < nss_ckmk_nObjects; i++) {
|
||||
ckmkInternalObject *o = (ckmkInternalObject *)&nss_ckmk_data[i];
|
||||
|
||||
if (CK_TRUE == ckmk_match(pTemplate, ulAttributeCount, o)) {
|
||||
PUT_OBJECT(o, *pError, size, count, *listp);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* now handle the various object types
|
||||
*/
|
||||
objClass = nss_ckmk_GetULongAttribute(CKA_CLASS,
|
||||
pTemplate, ulAttributeCount, pError);
|
||||
if (CKR_OK != *pError) {
|
||||
objClass = CK_INVALID_HANDLE;
|
||||
}
|
||||
*pError = CKR_OK;
|
||||
switch (objClass) {
|
||||
case CKO_CERTIFICATE:
|
||||
count = collect_class(objClass, kSecCertificateItemClass,
|
||||
pTemplate, ulAttributeCount, listp,
|
||||
&size, count, pError);
|
||||
break;
|
||||
case CKO_PUBLIC_KEY:
|
||||
count = collect_class(objClass, CSSM_DL_DB_RECORD_PUBLIC_KEY,
|
||||
pTemplate, ulAttributeCount, listp,
|
||||
&size, count, pError);
|
||||
break;
|
||||
case CKO_PRIVATE_KEY:
|
||||
count = collect_class(objClass, CSSM_DL_DB_RECORD_PRIVATE_KEY,
|
||||
pTemplate, ulAttributeCount, listp,
|
||||
&size, count, pError);
|
||||
break;
|
||||
/* all of them */
|
||||
case CK_INVALID_HANDLE:
|
||||
count = collect_class(CKO_CERTIFICATE, kSecCertificateItemClass,
|
||||
pTemplate, ulAttributeCount, listp,
|
||||
&size, count, pError);
|
||||
count = collect_class(CKO_PUBLIC_KEY, CSSM_DL_DB_RECORD_PUBLIC_KEY,
|
||||
pTemplate, ulAttributeCount, listp,
|
||||
&size, count, pError);
|
||||
count = collect_class(CKO_PUBLIC_KEY, CSSM_DL_DB_RECORD_PRIVATE_KEY,
|
||||
pTemplate, ulAttributeCount, listp,
|
||||
&size, count, pError);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (CKR_OK != *pError) {
|
||||
goto loser;
|
||||
}
|
||||
|
||||
return count;
|
||||
loser:
|
||||
nss_ZFreeIf(*listp);
|
||||
return 0;
|
||||
}
|
||||
|
||||
NSS_IMPLEMENT NSSCKMDFindObjects *
|
||||
nss_ckmk_FindObjectsInit(
|
||||
NSSCKFWSession *fwSession,
|
||||
CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulAttributeCount,
|
||||
CK_RV *pError)
|
||||
{
|
||||
/* This could be made more efficient. I'm rather rushed. */
|
||||
NSSArena *arena;
|
||||
NSSCKMDFindObjects *rv = (NSSCKMDFindObjects *)NULL;
|
||||
struct ckmkFOStr *fo = (struct ckmkFOStr *)NULL;
|
||||
ckmkInternalObject **temp = (ckmkInternalObject **)NULL;
|
||||
|
||||
arena = NSSArena_Create();
|
||||
if ((NSSArena *)NULL == arena) {
|
||||
goto loser;
|
||||
}
|
||||
|
||||
rv = nss_ZNEW(arena, NSSCKMDFindObjects);
|
||||
if ((NSSCKMDFindObjects *)NULL == rv) {
|
||||
*pError = CKR_HOST_MEMORY;
|
||||
goto loser;
|
||||
}
|
||||
|
||||
fo = nss_ZNEW(arena, struct ckmkFOStr);
|
||||
if ((struct ckmkFOStr *)NULL == fo) {
|
||||
*pError = CKR_HOST_MEMORY;
|
||||
goto loser;
|
||||
}
|
||||
|
||||
fo->arena = arena;
|
||||
/* fo->n and fo->i are already zero */
|
||||
|
||||
rv->etc = (void *)fo;
|
||||
rv->Final = ckmk_mdFindObjects_Final;
|
||||
rv->Next = ckmk_mdFindObjects_Next;
|
||||
rv->null = (void *)NULL;
|
||||
|
||||
fo->n = collect_objects(pTemplate, ulAttributeCount, &temp, pError);
|
||||
if (*pError != CKR_OK) {
|
||||
goto loser;
|
||||
}
|
||||
|
||||
fo->objs = nss_ZNEWARRAY(arena, ckmkInternalObject *, fo->n);
|
||||
if ((ckmkInternalObject **)NULL == fo->objs) {
|
||||
*pError = CKR_HOST_MEMORY;
|
||||
goto loser;
|
||||
}
|
||||
|
||||
(void)nsslibc_memcpy(fo->objs, temp, sizeof(ckmkInternalObject *) * fo->n);
|
||||
nss_ZFreeIf(temp);
|
||||
temp = (ckmkInternalObject **)NULL;
|
||||
|
||||
return rv;
|
||||
|
||||
loser:
|
||||
nss_ZFreeIf(temp);
|
||||
nss_ZFreeIf(fo);
|
||||
nss_ZFreeIf(rv);
|
||||
if ((NSSArena *)NULL != arena) {
|
||||
NSSArena_Destroy(arena);
|
||||
}
|
||||
return (NSSCKMDFindObjects *)NULL;
|
||||
}
|
||||
|
|
@ -1,97 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
#include "ckmk.h"
|
||||
|
||||
/*
|
||||
* nssmkey/minstance.c
|
||||
*
|
||||
* This file implements the NSSCKMDInstance object for the
|
||||
* "nssmkey" cryptoki module.
|
||||
*/
|
||||
|
||||
/*
|
||||
* NSSCKMDInstance methods
|
||||
*/
|
||||
|
||||
static CK_ULONG
|
||||
ckmk_mdInstance_GetNSlots(
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return (CK_ULONG)1;
|
||||
}
|
||||
|
||||
static CK_VERSION
|
||||
ckmk_mdInstance_GetCryptokiVersion(
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance)
|
||||
{
|
||||
return nss_ckmk_CryptokiVersion;
|
||||
}
|
||||
|
||||
static NSSUTF8 *
|
||||
ckmk_mdInstance_GetManufacturerID(
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return (NSSUTF8 *)nss_ckmk_ManufacturerID;
|
||||
}
|
||||
|
||||
static NSSUTF8 *
|
||||
ckmk_mdInstance_GetLibraryDescription(
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return (NSSUTF8 *)nss_ckmk_LibraryDescription;
|
||||
}
|
||||
|
||||
static CK_VERSION
|
||||
ckmk_mdInstance_GetLibraryVersion(
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance)
|
||||
{
|
||||
return nss_ckmk_LibraryVersion;
|
||||
}
|
||||
|
||||
static CK_RV
|
||||
ckmk_mdInstance_GetSlots(
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
NSSCKMDSlot *slots[])
|
||||
{
|
||||
slots[0] = (NSSCKMDSlot *)&nss_ckmk_mdSlot;
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
static CK_BBOOL
|
||||
ckmk_mdInstance_ModuleHandlesSessionObjects(
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance)
|
||||
{
|
||||
/* we don't want to allow any session object creation, at least
|
||||
* until we can investigate whether or not we can use those objects
|
||||
*/
|
||||
return CK_TRUE;
|
||||
}
|
||||
|
||||
NSS_IMPLEMENT_DATA const NSSCKMDInstance
|
||||
nss_ckmk_mdInstance = {
|
||||
(void *)NULL, /* etc */
|
||||
NULL, /* Initialize */
|
||||
NULL, /* Finalize */
|
||||
ckmk_mdInstance_GetNSlots,
|
||||
ckmk_mdInstance_GetCryptokiVersion,
|
||||
ckmk_mdInstance_GetManufacturerID,
|
||||
ckmk_mdInstance_GetLibraryDescription,
|
||||
ckmk_mdInstance_GetLibraryVersion,
|
||||
ckmk_mdInstance_ModuleHandlesSessionObjects,
|
||||
/*NULL, /* HandleSessionObjects */
|
||||
ckmk_mdInstance_GetSlots,
|
||||
NULL, /* WaitForSlotEvent */
|
||||
(void *)NULL /* null terminator */
|
||||
};
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,479 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
#include "ckmk.h"
|
||||
|
||||
/* Sigh, For all the talk about 'ease of use', apple has hidden the interfaces
|
||||
* needed to be able to truly use CSSM. These came from their modification
|
||||
* to NSS's S/MIME code. The following two functions currently are not
|
||||
* part of the SecKey.h interface.
|
||||
*/
|
||||
OSStatus
|
||||
SecKeyGetCredentials(
|
||||
SecKeyRef keyRef,
|
||||
CSSM_ACL_AUTHORIZATION_TAG authTag,
|
||||
int type,
|
||||
const CSSM_ACCESS_CREDENTIALS **creds);
|
||||
|
||||
/* this function could be implemented using 'SecKeychainItemCopyKeychain' and
|
||||
* 'SecKeychainGetCSPHandle' */
|
||||
OSStatus
|
||||
SecKeyGetCSPHandle(
|
||||
SecKeyRef keyRef,
|
||||
CSSM_CSP_HANDLE *cspHandle);
|
||||
|
||||
typedef struct ckmkInternalCryptoOperationRSAPrivStr
|
||||
ckmkInternalCryptoOperationRSAPriv;
|
||||
struct ckmkInternalCryptoOperationRSAPrivStr {
|
||||
NSSCKMDCryptoOperation mdOperation;
|
||||
NSSCKMDMechanism *mdMechanism;
|
||||
ckmkInternalObject *iKey;
|
||||
NSSItem *buffer;
|
||||
CSSM_CC_HANDLE cssmContext;
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
CKMK_DECRYPT,
|
||||
CKMK_SIGN
|
||||
} ckmkRSAOpType;
|
||||
|
||||
/*
|
||||
* ckmk_mdCryptoOperationRSAPriv_Create
|
||||
*/
|
||||
static NSSCKMDCryptoOperation *
|
||||
ckmk_mdCryptoOperationRSAPriv_Create(
|
||||
const NSSCKMDCryptoOperation *proto,
|
||||
NSSCKMDMechanism *mdMechanism,
|
||||
NSSCKMDObject *mdKey,
|
||||
ckmkRSAOpType type,
|
||||
CK_RV *pError)
|
||||
{
|
||||
ckmkInternalObject *iKey = (ckmkInternalObject *)mdKey->etc;
|
||||
const NSSItem *classItem = nss_ckmk_FetchAttribute(iKey, CKA_CLASS, pError);
|
||||
const NSSItem *keyType = nss_ckmk_FetchAttribute(iKey, CKA_KEY_TYPE, pError);
|
||||
ckmkInternalCryptoOperationRSAPriv *iOperation;
|
||||
SecKeyRef privateKey;
|
||||
OSStatus macErr;
|
||||
CSSM_RETURN cssmErr;
|
||||
const CSSM_KEY *cssmKey;
|
||||
CSSM_CSP_HANDLE cspHandle;
|
||||
const CSSM_ACCESS_CREDENTIALS *creds = NULL;
|
||||
CSSM_CC_HANDLE cssmContext;
|
||||
CSSM_ACL_AUTHORIZATION_TAG authType;
|
||||
|
||||
/* make sure we have the right objects */
|
||||
if (((const NSSItem *)NULL == classItem) ||
|
||||
(sizeof(CK_OBJECT_CLASS) != classItem->size) ||
|
||||
(CKO_PRIVATE_KEY != *(CK_OBJECT_CLASS *)classItem->data) ||
|
||||
((const NSSItem *)NULL == keyType) ||
|
||||
(sizeof(CK_KEY_TYPE) != keyType->size) ||
|
||||
(CKK_RSA != *(CK_KEY_TYPE *)keyType->data)) {
|
||||
*pError = CKR_KEY_TYPE_INCONSISTENT;
|
||||
return (NSSCKMDCryptoOperation *)NULL;
|
||||
}
|
||||
|
||||
privateKey = (SecKeyRef)iKey->u.item.itemRef;
|
||||
macErr = SecKeyGetCSSMKey(privateKey, &cssmKey);
|
||||
if (noErr != macErr) {
|
||||
CKMK_MACERR("Getting CSSM Key", macErr);
|
||||
*pError = CKR_KEY_HANDLE_INVALID;
|
||||
return (NSSCKMDCryptoOperation *)NULL;
|
||||
}
|
||||
macErr = SecKeyGetCSPHandle(privateKey, &cspHandle);
|
||||
if (noErr != macErr) {
|
||||
CKMK_MACERR("Getting CSP for Key", macErr);
|
||||
*pError = CKR_KEY_HANDLE_INVALID;
|
||||
return (NSSCKMDCryptoOperation *)NULL;
|
||||
}
|
||||
switch (type) {
|
||||
case CKMK_DECRYPT:
|
||||
authType = CSSM_ACL_AUTHORIZATION_DECRYPT;
|
||||
break;
|
||||
case CKMK_SIGN:
|
||||
authType = CSSM_ACL_AUTHORIZATION_SIGN;
|
||||
break;
|
||||
default:
|
||||
*pError = CKR_GENERAL_ERROR;
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr, "RSAPriv_Create: bad type = %d\n", type);
|
||||
#endif
|
||||
return (NSSCKMDCryptoOperation *)NULL;
|
||||
}
|
||||
|
||||
macErr = SecKeyGetCredentials(privateKey, authType, 0, &creds);
|
||||
if (noErr != macErr) {
|
||||
CKMK_MACERR("Getting Credentials for Key", macErr);
|
||||
*pError = CKR_KEY_HANDLE_INVALID;
|
||||
return (NSSCKMDCryptoOperation *)NULL;
|
||||
}
|
||||
|
||||
switch (type) {
|
||||
case CKMK_DECRYPT:
|
||||
cssmErr = CSSM_CSP_CreateAsymmetricContext(cspHandle, CSSM_ALGID_RSA,
|
||||
creds, cssmKey, CSSM_PADDING_PKCS1, &cssmContext);
|
||||
break;
|
||||
case CKMK_SIGN:
|
||||
cssmErr = CSSM_CSP_CreateSignatureContext(cspHandle, CSSM_ALGID_RSA,
|
||||
creds, cssmKey, &cssmContext);
|
||||
break;
|
||||
default:
|
||||
*pError = CKR_GENERAL_ERROR;
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr, "RSAPriv_Create: bad type = %d\n", type);
|
||||
#endif
|
||||
return (NSSCKMDCryptoOperation *)NULL;
|
||||
}
|
||||
if (noErr != cssmErr) {
|
||||
CKMK_MACERR("Getting Context for Key", cssmErr);
|
||||
*pError = CKR_GENERAL_ERROR;
|
||||
return (NSSCKMDCryptoOperation *)NULL;
|
||||
}
|
||||
|
||||
iOperation = nss_ZNEW(NULL, ckmkInternalCryptoOperationRSAPriv);
|
||||
if ((ckmkInternalCryptoOperationRSAPriv *)NULL == iOperation) {
|
||||
*pError = CKR_HOST_MEMORY;
|
||||
return (NSSCKMDCryptoOperation *)NULL;
|
||||
}
|
||||
iOperation->mdMechanism = mdMechanism;
|
||||
iOperation->iKey = iKey;
|
||||
iOperation->cssmContext = cssmContext;
|
||||
|
||||
nsslibc_memcpy(&iOperation->mdOperation,
|
||||
proto, sizeof(NSSCKMDCryptoOperation));
|
||||
iOperation->mdOperation.etc = iOperation;
|
||||
|
||||
return &iOperation->mdOperation;
|
||||
}
|
||||
|
||||
static void
|
||||
ckmk_mdCryptoOperationRSAPriv_Destroy(
|
||||
NSSCKMDCryptoOperation *mdOperation,
|
||||
NSSCKFWCryptoOperation *fwOperation,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance)
|
||||
{
|
||||
ckmkInternalCryptoOperationRSAPriv *iOperation =
|
||||
(ckmkInternalCryptoOperationRSAPriv *)mdOperation->etc;
|
||||
|
||||
if (iOperation->buffer) {
|
||||
nssItem_Destroy(iOperation->buffer);
|
||||
}
|
||||
if (iOperation->cssmContext) {
|
||||
CSSM_DeleteContext(iOperation->cssmContext);
|
||||
}
|
||||
nss_ZFreeIf(iOperation);
|
||||
return;
|
||||
}
|
||||
|
||||
static CK_ULONG
|
||||
ckmk_mdCryptoOperationRSA_GetFinalLength(
|
||||
NSSCKMDCryptoOperation *mdOperation,
|
||||
NSSCKFWCryptoOperation *fwOperation,
|
||||
NSSCKMDSession *mdSession,
|
||||
NSSCKFWSession *fwSession,
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
CK_RV *pError)
|
||||
{
|
||||
ckmkInternalCryptoOperationRSAPriv *iOperation =
|
||||
(ckmkInternalCryptoOperationRSAPriv *)mdOperation->etc;
|
||||
const NSSItem *modulus =
|
||||
nss_ckmk_FetchAttribute(iOperation->iKey, CKA_MODULUS, pError);
|
||||
|
||||
return modulus->size;
|
||||
}
|
||||
|
||||
/*
|
||||
* ckmk_mdCryptoOperationRSADecrypt_GetOperationLength
|
||||
* we won't know the length until we actually decrypt the
|
||||
* input block. Since we go to all the work to decrypt the
|
||||
* the block, we'll save if for when the block is asked for
|
||||
*/
|
||||
static CK_ULONG
|
||||
ckmk_mdCryptoOperationRSADecrypt_GetOperationLength(
|
||||
NSSCKMDCryptoOperation *mdOperation,
|
||||
NSSCKFWCryptoOperation *fwOperation,
|
||||
NSSCKMDSession *mdSession,
|
||||
NSSCKFWSession *fwSession,
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
const NSSItem *input,
|
||||
CK_RV *pError)
|
||||
{
|
||||
ckmkInternalCryptoOperationRSAPriv *iOperation =
|
||||
(ckmkInternalCryptoOperationRSAPriv *)mdOperation->etc;
|
||||
CSSM_DATA cssmInput;
|
||||
CSSM_DATA cssmOutput = { 0, NULL };
|
||||
PRUint32 bytesDecrypted;
|
||||
CSSM_DATA remainder = { 0, NULL };
|
||||
NSSItem output;
|
||||
CSSM_RETURN cssmErr;
|
||||
|
||||
if (iOperation->buffer) {
|
||||
return iOperation->buffer->size;
|
||||
}
|
||||
|
||||
cssmInput.Data = input->data;
|
||||
cssmInput.Length = input->size;
|
||||
|
||||
cssmErr = CSSM_DecryptData(iOperation->cssmContext,
|
||||
&cssmInput, 1, &cssmOutput, 1,
|
||||
&bytesDecrypted, &remainder);
|
||||
if (CSSM_OK != cssmErr) {
|
||||
CKMK_MACERR("Decrypt Failed", cssmErr);
|
||||
*pError = CKR_DATA_INVALID;
|
||||
return 0;
|
||||
}
|
||||
/* we didn't suppy any buffers, so it should all be in remainder */
|
||||
output.data = nss_ZNEWARRAY(NULL, char, bytesDecrypted + remainder.Length);
|
||||
if (NULL == output.data) {
|
||||
free(cssmOutput.Data);
|
||||
free(remainder.Data);
|
||||
*pError = CKR_HOST_MEMORY;
|
||||
return 0;
|
||||
}
|
||||
output.size = bytesDecrypted + remainder.Length;
|
||||
|
||||
if (0 != bytesDecrypted) {
|
||||
nsslibc_memcpy(output.data, cssmOutput.Data, bytesDecrypted);
|
||||
free(cssmOutput.Data);
|
||||
}
|
||||
if (0 != remainder.Length) {
|
||||
nsslibc_memcpy(((char *)output.data) + bytesDecrypted,
|
||||
remainder.Data, remainder.Length);
|
||||
free(remainder.Data);
|
||||
}
|
||||
|
||||
iOperation->buffer = nssItem_Duplicate(&output, NULL, NULL);
|
||||
nss_ZFreeIf(output.data);
|
||||
if ((NSSItem *)NULL == iOperation->buffer) {
|
||||
*pError = CKR_HOST_MEMORY;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return iOperation->buffer->size;
|
||||
}
|
||||
|
||||
/*
|
||||
* ckmk_mdCryptoOperationRSADecrypt_UpdateFinal
|
||||
*
|
||||
* NOTE: ckmk_mdCryptoOperationRSADecrypt_GetOperationLength is presumed to
|
||||
* have been called previously.
|
||||
*/
|
||||
static CK_RV
|
||||
ckmk_mdCryptoOperationRSADecrypt_UpdateFinal(
|
||||
NSSCKMDCryptoOperation *mdOperation,
|
||||
NSSCKFWCryptoOperation *fwOperation,
|
||||
NSSCKMDSession *mdSession,
|
||||
NSSCKFWSession *fwSession,
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
const NSSItem *input,
|
||||
NSSItem *output)
|
||||
{
|
||||
ckmkInternalCryptoOperationRSAPriv *iOperation =
|
||||
(ckmkInternalCryptoOperationRSAPriv *)mdOperation->etc;
|
||||
NSSItem *buffer = iOperation->buffer;
|
||||
|
||||
if ((NSSItem *)NULL == buffer) {
|
||||
return CKR_GENERAL_ERROR;
|
||||
}
|
||||
nsslibc_memcpy(output->data, buffer->data, buffer->size);
|
||||
output->size = buffer->size;
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
/*
|
||||
* ckmk_mdCryptoOperationRSASign_UpdateFinal
|
||||
*
|
||||
*/
|
||||
static CK_RV
|
||||
ckmk_mdCryptoOperationRSASign_UpdateFinal(
|
||||
NSSCKMDCryptoOperation *mdOperation,
|
||||
NSSCKFWCryptoOperation *fwOperation,
|
||||
NSSCKMDSession *mdSession,
|
||||
NSSCKFWSession *fwSession,
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
const NSSItem *input,
|
||||
NSSItem *output)
|
||||
{
|
||||
ckmkInternalCryptoOperationRSAPriv *iOperation =
|
||||
(ckmkInternalCryptoOperationRSAPriv *)mdOperation->etc;
|
||||
CSSM_DATA cssmInput;
|
||||
CSSM_DATA cssmOutput = { 0, NULL };
|
||||
CSSM_RETURN cssmErr;
|
||||
|
||||
cssmInput.Data = input->data;
|
||||
cssmInput.Length = input->size;
|
||||
|
||||
cssmErr = CSSM_SignData(iOperation->cssmContext, &cssmInput, 1,
|
||||
CSSM_ALGID_NONE, &cssmOutput);
|
||||
if (CSSM_OK != cssmErr) {
|
||||
CKMK_MACERR("Signed Failed", cssmErr);
|
||||
return CKR_FUNCTION_FAILED;
|
||||
}
|
||||
if (cssmOutput.Length > output->size) {
|
||||
free(cssmOutput.Data);
|
||||
return CKR_BUFFER_TOO_SMALL;
|
||||
}
|
||||
nsslibc_memcpy(output->data, cssmOutput.Data, cssmOutput.Length);
|
||||
free(cssmOutput.Data);
|
||||
output->size = cssmOutput.Length;
|
||||
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
NSS_IMPLEMENT_DATA const NSSCKMDCryptoOperation
|
||||
ckmk_mdCryptoOperationRSADecrypt_proto = {
|
||||
NULL, /* etc */
|
||||
ckmk_mdCryptoOperationRSAPriv_Destroy,
|
||||
NULL, /* GetFinalLengh - not needed for one shot Decrypt/Encrypt */
|
||||
ckmk_mdCryptoOperationRSADecrypt_GetOperationLength,
|
||||
NULL, /* Final - not needed for one shot operation */
|
||||
NULL, /* Update - not needed for one shot operation */
|
||||
NULL, /* DigetUpdate - not needed for one shot operation */
|
||||
ckmk_mdCryptoOperationRSADecrypt_UpdateFinal,
|
||||
NULL, /* UpdateCombo - not needed for one shot operation */
|
||||
NULL, /* DigetKey - not needed for one shot operation */
|
||||
(void *)NULL /* null terminator */
|
||||
};
|
||||
|
||||
NSS_IMPLEMENT_DATA const NSSCKMDCryptoOperation
|
||||
ckmk_mdCryptoOperationRSASign_proto = {
|
||||
NULL, /* etc */
|
||||
ckmk_mdCryptoOperationRSAPriv_Destroy,
|
||||
ckmk_mdCryptoOperationRSA_GetFinalLength,
|
||||
NULL, /* GetOperationLengh - not needed for one shot Sign/Verify */
|
||||
NULL, /* Final - not needed for one shot operation */
|
||||
NULL, /* Update - not needed for one shot operation */
|
||||
NULL, /* DigetUpdate - not needed for one shot operation */
|
||||
ckmk_mdCryptoOperationRSASign_UpdateFinal,
|
||||
NULL, /* UpdateCombo - not needed for one shot operation */
|
||||
NULL, /* DigetKey - not needed for one shot operation */
|
||||
(void *)NULL /* null terminator */
|
||||
};
|
||||
|
||||
/********** NSSCKMDMechansim functions ***********************/
|
||||
/*
|
||||
* ckmk_mdMechanismRSA_Destroy
|
||||
*/
|
||||
static void
|
||||
ckmk_mdMechanismRSA_Destroy(
|
||||
NSSCKMDMechanism *mdMechanism,
|
||||
NSSCKFWMechanism *fwMechanism,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance)
|
||||
{
|
||||
nss_ZFreeIf(fwMechanism);
|
||||
}
|
||||
|
||||
/*
|
||||
* ckmk_mdMechanismRSA_GetMinKeySize
|
||||
*/
|
||||
static CK_ULONG
|
||||
ckmk_mdMechanismRSA_GetMinKeySize(
|
||||
NSSCKMDMechanism *mdMechanism,
|
||||
NSSCKFWMechanism *fwMechanism,
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return 384;
|
||||
}
|
||||
|
||||
/*
|
||||
* ckmk_mdMechanismRSA_GetMaxKeySize
|
||||
*/
|
||||
static CK_ULONG
|
||||
ckmk_mdMechanismRSA_GetMaxKeySize(
|
||||
NSSCKMDMechanism *mdMechanism,
|
||||
NSSCKFWMechanism *fwMechanism,
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return 16384;
|
||||
}
|
||||
|
||||
/*
|
||||
* ckmk_mdMechanismRSA_DecryptInit
|
||||
*/
|
||||
static NSSCKMDCryptoOperation *
|
||||
ckmk_mdMechanismRSA_DecryptInit(
|
||||
NSSCKMDMechanism *mdMechanism,
|
||||
NSSCKFWMechanism *fwMechanism,
|
||||
CK_MECHANISM *pMechanism,
|
||||
NSSCKMDSession *mdSession,
|
||||
NSSCKFWSession *fwSession,
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
NSSCKMDObject *mdKey,
|
||||
NSSCKFWObject *fwKey,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return ckmk_mdCryptoOperationRSAPriv_Create(
|
||||
&ckmk_mdCryptoOperationRSADecrypt_proto,
|
||||
mdMechanism, mdKey, CKMK_DECRYPT, pError);
|
||||
}
|
||||
|
||||
/*
|
||||
* ckmk_mdMechanismRSA_SignInit
|
||||
*/
|
||||
static NSSCKMDCryptoOperation *
|
||||
ckmk_mdMechanismRSA_SignInit(
|
||||
NSSCKMDMechanism *mdMechanism,
|
||||
NSSCKFWMechanism *fwMechanism,
|
||||
CK_MECHANISM *pMechanism,
|
||||
NSSCKMDSession *mdSession,
|
||||
NSSCKFWSession *fwSession,
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
NSSCKMDObject *mdKey,
|
||||
NSSCKFWObject *fwKey,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return ckmk_mdCryptoOperationRSAPriv_Create(
|
||||
&ckmk_mdCryptoOperationRSASign_proto,
|
||||
mdMechanism, mdKey, CKMK_SIGN, pError);
|
||||
}
|
||||
|
||||
NSS_IMPLEMENT_DATA const NSSCKMDMechanism
|
||||
nss_ckmk_mdMechanismRSA = {
|
||||
(void *)NULL, /* etc */
|
||||
ckmk_mdMechanismRSA_Destroy,
|
||||
ckmk_mdMechanismRSA_GetMinKeySize,
|
||||
ckmk_mdMechanismRSA_GetMaxKeySize,
|
||||
NULL, /* GetInHardware - default false */
|
||||
NULL, /* EncryptInit - default errs */
|
||||
ckmk_mdMechanismRSA_DecryptInit,
|
||||
NULL, /* DigestInit - default errs*/
|
||||
ckmk_mdMechanismRSA_SignInit,
|
||||
NULL, /* VerifyInit - default errs */
|
||||
ckmk_mdMechanismRSA_SignInit, /* SignRecoverInit */
|
||||
NULL, /* VerifyRecoverInit - default errs */
|
||||
NULL, /* GenerateKey - default errs */
|
||||
NULL, /* GenerateKeyPair - default errs */
|
||||
NULL, /* GetWrapKeyLength - default errs */
|
||||
NULL, /* WrapKey - default errs */
|
||||
NULL, /* UnwrapKey - default errs */
|
||||
NULL, /* DeriveKey - default errs */
|
||||
(void *)NULL /* null terminator */
|
||||
};
|
||||
|
|
@ -1,87 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
#include "ckmk.h"
|
||||
|
||||
/*
|
||||
* nssmkey/msession.c
|
||||
*
|
||||
* This file implements the NSSCKMDSession object for the
|
||||
* "nssmkey" cryptoki module.
|
||||
*/
|
||||
|
||||
static NSSCKMDFindObjects *
|
||||
ckmk_mdSession_FindObjectsInit(
|
||||
NSSCKMDSession *mdSession,
|
||||
NSSCKFWSession *fwSession,
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulAttributeCount,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return nss_ckmk_FindObjectsInit(fwSession, pTemplate, ulAttributeCount, pError);
|
||||
}
|
||||
|
||||
static NSSCKMDObject *
|
||||
ckmk_mdSession_CreateObject(
|
||||
NSSCKMDSession *mdSession,
|
||||
NSSCKFWSession *fwSession,
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
NSSArena *arena,
|
||||
CK_ATTRIBUTE_PTR pTemplate,
|
||||
CK_ULONG ulAttributeCount,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return nss_ckmk_CreateObject(fwSession, pTemplate, ulAttributeCount, pError);
|
||||
}
|
||||
|
||||
NSS_IMPLEMENT NSSCKMDSession *
|
||||
nss_ckmk_CreateSession(
|
||||
NSSCKFWSession *fwSession,
|
||||
CK_RV *pError)
|
||||
{
|
||||
NSSArena *arena;
|
||||
NSSCKMDSession *rv;
|
||||
|
||||
arena = NSSCKFWSession_GetArena(fwSession, pError);
|
||||
if ((NSSArena *)NULL == arena) {
|
||||
return (NSSCKMDSession *)NULL;
|
||||
}
|
||||
|
||||
rv = nss_ZNEW(arena, NSSCKMDSession);
|
||||
if ((NSSCKMDSession *)NULL == rv) {
|
||||
*pError = CKR_HOST_MEMORY;
|
||||
return (NSSCKMDSession *)NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* rv was zeroed when allocated, so we only
|
||||
* need to set the non-zero members.
|
||||
*/
|
||||
|
||||
rv->etc = (void *)fwSession;
|
||||
/* rv->Close */
|
||||
/* rv->GetDeviceError */
|
||||
/* rv->Login */
|
||||
/* rv->Logout */
|
||||
/* rv->InitPIN */
|
||||
/* rv->SetPIN */
|
||||
/* rv->GetOperationStateLen */
|
||||
/* rv->GetOperationState */
|
||||
/* rv->SetOperationState */
|
||||
rv->CreateObject = ckmk_mdSession_CreateObject;
|
||||
/* rv->CopyObject */
|
||||
rv->FindObjectsInit = ckmk_mdSession_FindObjectsInit;
|
||||
/* rv->SeedRandom */
|
||||
/* rv->GetRandom */
|
||||
/* rv->null */
|
||||
|
||||
return rv;
|
||||
}
|
||||
|
|
@ -1,81 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
#include "ckmk.h"
|
||||
|
||||
/*
|
||||
* nssmkey/mslot.c
|
||||
*
|
||||
* This file implements the NSSCKMDSlot object for the
|
||||
* "nssmkey" cryptoki module.
|
||||
*/
|
||||
|
||||
static NSSUTF8 *
|
||||
ckmk_mdSlot_GetSlotDescription(
|
||||
NSSCKMDSlot *mdSlot,
|
||||
NSSCKFWSlot *fwSlot,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return (NSSUTF8 *)nss_ckmk_SlotDescription;
|
||||
}
|
||||
|
||||
static NSSUTF8 *
|
||||
ckmk_mdSlot_GetManufacturerID(
|
||||
NSSCKMDSlot *mdSlot,
|
||||
NSSCKFWSlot *fwSlot,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return (NSSUTF8 *)nss_ckmk_ManufacturerID;
|
||||
}
|
||||
|
||||
static CK_VERSION
|
||||
ckmk_mdSlot_GetHardwareVersion(
|
||||
NSSCKMDSlot *mdSlot,
|
||||
NSSCKFWSlot *fwSlot,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance)
|
||||
{
|
||||
return nss_ckmk_HardwareVersion;
|
||||
}
|
||||
|
||||
static CK_VERSION
|
||||
ckmk_mdSlot_GetFirmwareVersion(
|
||||
NSSCKMDSlot *mdSlot,
|
||||
NSSCKFWSlot *fwSlot,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance)
|
||||
{
|
||||
return nss_ckmk_FirmwareVersion;
|
||||
}
|
||||
|
||||
static NSSCKMDToken *
|
||||
ckmk_mdSlot_GetToken(
|
||||
NSSCKMDSlot *mdSlot,
|
||||
NSSCKFWSlot *fwSlot,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return (NSSCKMDToken *)&nss_ckmk_mdToken;
|
||||
}
|
||||
|
||||
NSS_IMPLEMENT_DATA const NSSCKMDSlot
|
||||
nss_ckmk_mdSlot = {
|
||||
(void *)NULL, /* etc */
|
||||
NULL, /* Initialize */
|
||||
NULL, /* Destroy */
|
||||
ckmk_mdSlot_GetSlotDescription,
|
||||
ckmk_mdSlot_GetManufacturerID,
|
||||
NULL, /* GetTokenPresent -- defaults to true */
|
||||
NULL, /* GetRemovableDevice -- defaults to false */
|
||||
NULL, /* GetHardwareSlot -- defaults to false */
|
||||
ckmk_mdSlot_GetHardwareVersion,
|
||||
ckmk_mdSlot_GetFirmwareVersion,
|
||||
ckmk_mdSlot_GetToken,
|
||||
(void *)NULL /* null terminator */
|
||||
};
|
||||
|
|
@ -1,184 +0,0 @@
|
|||
/* 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/. */
|
||||
|
||||
#include "ckmk.h"
|
||||
|
||||
/*
|
||||
* nssmkey/mtoken.c
|
||||
*
|
||||
* This file implements the NSSCKMDToken object for the
|
||||
* "nssmkey" cryptoki module.
|
||||
*/
|
||||
|
||||
static NSSUTF8 *
|
||||
ckmk_mdToken_GetLabel(
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return (NSSUTF8 *)nss_ckmk_TokenLabel;
|
||||
}
|
||||
|
||||
static NSSUTF8 *
|
||||
ckmk_mdToken_GetManufacturerID(
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return (NSSUTF8 *)nss_ckmk_ManufacturerID;
|
||||
}
|
||||
|
||||
static NSSUTF8 *
|
||||
ckmk_mdToken_GetModel(
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return (NSSUTF8 *)nss_ckmk_TokenModel;
|
||||
}
|
||||
|
||||
static NSSUTF8 *
|
||||
ckmk_mdToken_GetSerialNumber(
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return (NSSUTF8 *)nss_ckmk_TokenSerialNumber;
|
||||
}
|
||||
|
||||
static CK_BBOOL
|
||||
ckmk_mdToken_GetIsWriteProtected(
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance)
|
||||
{
|
||||
return CK_FALSE;
|
||||
}
|
||||
|
||||
/* fake out Mozilla so we don't try to initialize the token */
|
||||
static CK_BBOOL
|
||||
ckmk_mdToken_GetUserPinInitialized(
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance)
|
||||
{
|
||||
return CK_TRUE;
|
||||
}
|
||||
|
||||
static CK_VERSION
|
||||
ckmk_mdToken_GetHardwareVersion(
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance)
|
||||
{
|
||||
return nss_ckmk_HardwareVersion;
|
||||
}
|
||||
|
||||
static CK_VERSION
|
||||
ckmk_mdToken_GetFirmwareVersion(
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance)
|
||||
{
|
||||
return nss_ckmk_FirmwareVersion;
|
||||
}
|
||||
|
||||
static NSSCKMDSession *
|
||||
ckmk_mdToken_OpenSession(
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
NSSCKFWSession *fwSession,
|
||||
CK_BBOOL rw,
|
||||
CK_RV *pError)
|
||||
{
|
||||
return nss_ckmk_CreateSession(fwSession, pError);
|
||||
}
|
||||
|
||||
static CK_ULONG
|
||||
ckmk_mdToken_GetMechanismCount(
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance)
|
||||
{
|
||||
return (CK_ULONG)1;
|
||||
}
|
||||
|
||||
static CK_RV
|
||||
ckmk_mdToken_GetMechanismTypes(
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
CK_MECHANISM_TYPE types[])
|
||||
{
|
||||
types[0] = CKM_RSA_PKCS;
|
||||
return CKR_OK;
|
||||
}
|
||||
|
||||
static NSSCKMDMechanism *
|
||||
ckmk_mdToken_GetMechanism(
|
||||
NSSCKMDToken *mdToken,
|
||||
NSSCKFWToken *fwToken,
|
||||
NSSCKMDInstance *mdInstance,
|
||||
NSSCKFWInstance *fwInstance,
|
||||
CK_MECHANISM_TYPE which,
|
||||
CK_RV *pError)
|
||||
{
|
||||
if (which != CKM_RSA_PKCS) {
|
||||
*pError = CKR_MECHANISM_INVALID;
|
||||
return (NSSCKMDMechanism *)NULL;
|
||||
}
|
||||
return (NSSCKMDMechanism *)&nss_ckmk_mdMechanismRSA;
|
||||
}
|
||||
|
||||
NSS_IMPLEMENT_DATA const NSSCKMDToken
|
||||
nss_ckmk_mdToken = {
|
||||
(void *)NULL, /* etc */
|
||||
NULL, /* Setup */
|
||||
NULL, /* Invalidate */
|
||||
NULL, /* InitToken -- default errs */
|
||||
ckmk_mdToken_GetLabel,
|
||||
ckmk_mdToken_GetManufacturerID,
|
||||
ckmk_mdToken_GetModel,
|
||||
ckmk_mdToken_GetSerialNumber,
|
||||
NULL, /* GetHasRNG -- default is false */
|
||||
ckmk_mdToken_GetIsWriteProtected,
|
||||
NULL, /* GetLoginRequired -- default is false */
|
||||
ckmk_mdToken_GetUserPinInitialized,
|
||||
NULL, /* GetRestoreKeyNotNeeded -- irrelevant */
|
||||
NULL, /* GetHasClockOnToken -- default is false */
|
||||
NULL, /* GetHasProtectedAuthenticationPath -- default is false */
|
||||
NULL, /* GetSupportsDualCryptoOperations -- default is false */
|
||||
NULL, /* GetMaxSessionCount -- default is CK_UNAVAILABLE_INFORMATION */
|
||||
NULL, /* GetMaxRwSessionCount -- default is CK_UNAVAILABLE_INFORMATION */
|
||||
NULL, /* GetMaxPinLen -- irrelevant */
|
||||
NULL, /* GetMinPinLen -- irrelevant */
|
||||
NULL, /* GetTotalPublicMemory -- default is CK_UNAVAILABLE_INFORMATION */
|
||||
NULL, /* GetFreePublicMemory -- default is CK_UNAVAILABLE_INFORMATION */
|
||||
NULL, /* GetTotalPrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */
|
||||
NULL, /* GetFreePrivateMemory -- default is CK_UNAVAILABLE_INFORMATION */
|
||||
ckmk_mdToken_GetHardwareVersion,
|
||||
ckmk_mdToken_GetFirmwareVersion,
|
||||
NULL, /* GetUTCTime -- no clock */
|
||||
ckmk_mdToken_OpenSession,
|
||||
ckmk_mdToken_GetMechanismCount,
|
||||
ckmk_mdToken_GetMechanismTypes,
|
||||
ckmk_mdToken_GetMechanism,
|
||||
(void *)NULL /* null terminator */
|
||||
};
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
;+#
|
||||
;+# 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/.
|
||||
;+#
|
||||
;+# OK, this file is meant to support SUN, LINUX, AIX and WINDOWS
|
||||
;+# 1. For all unix platforms, the string ";-" means "remove this line"
|
||||
;+# 2. For all unix platforms, the string " DATA " will be removed from any
|
||||
;+# line on which it occurs.
|
||||
;+# 3. Lines containing ";+" will have ";+" removed on SUN and LINUX.
|
||||
;+# On AIX, lines containing ";+" will be removed.
|
||||
;+# 4. For all unix platforms, the string ";;" will thave the ";;" removed.
|
||||
;+# 5. For all unix platforms, after the above processing has taken place,
|
||||
;+# all characters after the first ";" on the line will be removed.
|
||||
;+# And for AIX, the first ";" will also be removed.
|
||||
;+# This file is passed directly to windows. Since ';' is a comment, all UNIX
|
||||
;+# directives are hidden behind ";", ";+", and ";-"
|
||||
;+
|
||||
;+NSSMKEY_3.0 { # First release of nssmkey
|
||||
;+ global:
|
||||
LIBRARY nssmkey ;-
|
||||
EXPORTS ;-
|
||||
C_GetFunctionList;
|
||||
;+ local:
|
||||
;+*;
|
||||
;+};
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
/* 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 NSSMKEY_H
|
||||
#define NSSMKEY_H
|
||||
|
||||
/*
|
||||
* NSS CKMK Version numbers.
|
||||
*
|
||||
* These are the version numbers for the nssmkey module packaged with
|
||||
* this release on NSS. To determine the version numbers of the builtin
|
||||
* module you are using, use the appropriate PKCS #11 calls.
|
||||
*
|
||||
* These version numbers detail changes to the PKCS #11 interface. They map
|
||||
* to the PKCS #11 spec versions.
|
||||
*/
|
||||
#define NSS_CKMK_CRYPTOKI_VERSION_MAJOR 2
|
||||
#define NSS_CKMK_CRYPTOKI_VERSION_MINOR 20
|
||||
|
||||
/* These version numbers detail the changes
|
||||
* to the list of trusted certificates.
|
||||
*
|
||||
* NSS_CKMK_LIBRARY_VERSION_MINOR is a CK_BYTE. It's not clear
|
||||
* whether we may use its full range (0-255) or only 0-99 because
|
||||
* of the comment in the CK_VERSION type definition.
|
||||
*/
|
||||
#define NSS_CKMK_LIBRARY_VERSION_MAJOR 1
|
||||
#define NSS_CKMK_LIBRARY_VERSION_MINOR 1
|
||||
#define NSS_CKMK_LIBRARY_VERSION "1.1"
|
||||
|
||||
/* These version numbers detail the semantic changes to the ckfw engine. */
|
||||
#define NSS_CKMK_HARDWARE_VERSION_MAJOR 1
|
||||
#define NSS_CKMK_HARDWARE_VERSION_MINOR 0
|
||||
|
||||
/* These version numbers detail the semantic changes to ckbi itself
|
||||
* (new PKCS #11 objects), etc. */
|
||||
#define NSS_CKMK_FIRMWARE_VERSION_MAJOR 1
|
||||
#define NSS_CKMK_FIRMWARE_VERSION_MINOR 0
|
||||
|
||||
#endif /* NSSMKEY_H */
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
/* 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 CKMK_H
|
||||
#include "ckmk.h"
|
||||
#endif /* CKMK_H */
|
||||
|
||||
static const CK_TRUST ckt_netscape_valid = CKT_NETSCAPE_VALID;
|
||||
static const CK_OBJECT_CLASS cko_certificate = CKO_CERTIFICATE;
|
||||
static const CK_TRUST ckt_netscape_trusted_delegator = CKT_NETSCAPE_TRUSTED_DELEGATOR;
|
||||
static const CK_OBJECT_CLASS cko_netscape_trust = CKO_NETSCAPE_TRUST;
|
||||
static const CK_BBOOL ck_true = CK_TRUE;
|
||||
static const CK_OBJECT_CLASS cko_data = CKO_DATA;
|
||||
static const CK_CERTIFICATE_TYPE ckc_x_509 = CKC_X_509;
|
||||
static const CK_BBOOL ck_false = CK_FALSE;
|
||||
static const CK_OBJECT_CLASS cko_netscape_builtin_root_list = CKO_NETSCAPE_BUILTIN_ROOT_LIST;
|
||||
|
||||
/* example of a static object */
|
||||
static const CK_ATTRIBUTE_TYPE nss_ckmk_types_1[] = {
|
||||
CKA_CLASS, CKA_TOKEN, CKA_PRIVATE, CKA_MODIFIABLE, CKA_LABEL
|
||||
};
|
||||
|
||||
static const NSSItem nss_ckmk_items_1[] = {
|
||||
{ (void *)&cko_data, (PRUint32)sizeof(CK_OBJECT_CLASS) },
|
||||
{ (void *)&ck_true, (PRUint32)sizeof(CK_BBOOL) },
|
||||
{ (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
|
||||
{ (void *)&ck_false, (PRUint32)sizeof(CK_BBOOL) },
|
||||
{ (void *)"Mozilla Mac Key Ring Access", (PRUint32)28 }
|
||||
};
|
||||
|
||||
ckmkInternalObject nss_ckmk_data[] = {
|
||||
{ ckmkRaw, { { 5, nss_ckmk_types_1, nss_ckmk_items_1 } }, CKO_DATA, { NULL } },
|
||||
};
|
||||
|
||||
const PRUint32 nss_ckmk_nObjects = 1;
|
||||
|
|
@ -1419,9 +1419,8 @@ nssCKFWSession_CopyObject(
|
|||
/* use create object */
|
||||
NSSArena *tmpArena;
|
||||
CK_ATTRIBUTE_PTR newTemplate;
|
||||
CK_ULONG i, j, n, newLength, k;
|
||||
CK_ULONG j, n, newLength, k;
|
||||
CK_ATTRIBUTE_TYPE_PTR oldTypes;
|
||||
NSSCKFWObject *rv;
|
||||
|
||||
n = nssCKFWObject_GetAttributeCount(fwObject, pError);
|
||||
if ((0 == n) && (CKR_OK != *pError)) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue