I found the answer.
In order to store the Root CA cert, or Interm CA cert into FireFox cert
store under "Authorities" tab, during PKCS#11 initialization, two P11
objects for each cert are needed: a Trusted Object and a Certificate
Object.

For example, for a Trusted Object, it should have the following
attributes set (values may varies):
============================
# Trust for Certificate "Go Daddy Class 2 CA"
CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
CKA_TOKEN CK_BBOOL CK_TRUE
CKA_PRIVATE CK_BBOOL CK_FALSE
CKA_MODIFIABLE CK_BBOOL CK_FALSE
CKA_LABEL UTF8 "Go Daddy Class 2 CA"
CKA_CERT_SHA1_HASH MULTILINE_OCTAL
\047\226\272\346\077\030\001\342\167\046\033\240\327\167\160\002
\217\040\356\344
END
CKA_CERT_MD5_HASH MULTILINE_OCTAL
\221\336\006\045\253\332\375\062\027\014\273\045\027\052\204\147
END
CKA_ISSUER MULTILINE_OCTAL
\060\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061
\041\060\037\006\003\125\004\012\023\030\124\150\145\040\107\157
\040\104\141\144\144\171\040\107\162\157\165\160\054\040\111\156
\143\056\061\061\060\057\006\003\125\004\013\023\050\107\157\040
\104\141\144\144\171\040\103\154\141\163\163\040\062\040\103\145
\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150
\157\162\151\164\171
END
CKA_SERIAL_NUMBER MULTILINE_OCTAL
\002\001\000
END
CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE

============================

And, for the Certificate objects, it should have:

=============================
#
# Certificate "Go Daddy Class 2 CA"
#
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 "Go Daddy Class 2 CA"
CKA_CERTIFICATE_TYPE CK_CERTIFICATE_TYPE CKC_X_509
CKA_SUBJECT MULTILINE_OCTAL
\060\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061
\041\060\037\006\003\125\004\012\023\030\124\150\145\040\107\157
\040\104\141\144\144\171\040\107\162\157\165\160\054\040\111\156
\143\056\061\061\060\057\006\003\125\004\013\023\050\107\157\040
\104\141\144\144\171\040\103\154\141\163\163\040\062\040\103\145
\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150
\157\162\151\164\171
END
CKA_ID UTF8 "0"
CKA_ISSUER MULTILINE_OCTAL
\060\143\061\013\060\011\006\003\125\004\006\023\002\125\123\061
\041\060\037\006\003\125\004\012\023\030\124\150\145\040\107\157
\040\104\141\144\144\171\040\107\162\157\165\160\054\040\111\156
\143\056\061\061\060\057\006\003\125\004\013\023\050\107\157\040
\104\141\144\144\171\040\103\154\141\163\163\040\062\040\103\145
\162\164\151\146\151\143\141\164\151\157\156\040\101\165\164\150
\157\162\151\164\171
END
CKA_SERIAL_NUMBER MULTILINE_OCTAL
\002\001\000
END
CKA_VALUE MULTILINE_OCTAL
\060\202\004\000\060\202\002\350\240\003\002\001\002\002\001\000....
......
\105\346\015\237\050\234\261\271\052\132\127\255\067\017\257\035
\177\333\275\237
END

# Trust for Certificate "Go Daddy Class 2 CA"
CKA_CLASS CK_OBJECT_CLASS CKO_NETSCAPE_TRUST
CKA_TOKEN CK_BBOOL CK_TRUE
CKA_PRIVATE CK_BBOOL CK_FALSE
CKA_MODIFIABLE CK_BBOOL CK_FALSE
CKA_LABEL UTF8 "Go Daddy Class 2 CA"
CKA_CERT_SHA1_HASH MULTILINE_OCTAL
\047\226\272\346\077\030\001\342\167\046\033\240\327\167\160\002
\217\040\356\344
END
CKA_CERT_MD5_HASH MULTILINE_OCTAL
\221\336\006\045\253\332\375\062\027\014\273\045\027\052\204\147
END
CKA_ISSUER MULTILINE_OCTAL
\060\143\061\013\060\011\006\003\125\004\006\023\002.....
END
CKA_SERIAL_NUMBER MULTILINE_OCTAL
\002\001\000
END
CKA_TRUST_SERVER_AUTH CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
CKA_TRUST_EMAIL_PROTECTION CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
CKA_TRUST_CODE_SIGNING CK_TRUST CKT_NETSCAPE_TRUSTED_DELEGATOR
CKA_TRUST_STEP_UP_APPROVED CK_BBOOL CK_FALSE
=============================

_______________________________________________
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to