зеркало из https://github.com/mozilla/gecko-dev.git
Bug 333090: CKM_DH_PKCS_KEY_PAIR_GEN always fails. r=nelson, sr=rrelyea
Patch contributed by Andreas.Sterbenz@sun.com
This commit is contained in:
Родитель
a9813aa152
Коммит
424fabe58a
|
@ -1228,6 +1228,7 @@ sftk_handlePrivateKeyObject(SFTKSession *session,SFTKObject *object,CK_KEY_TYPE
|
||||||
{
|
{
|
||||||
CK_BBOOL cktrue = CK_TRUE;
|
CK_BBOOL cktrue = CK_TRUE;
|
||||||
CK_BBOOL encrypt = CK_TRUE;
|
CK_BBOOL encrypt = CK_TRUE;
|
||||||
|
CK_BBOOL sign = CK_FALSE;
|
||||||
CK_BBOOL recover = CK_TRUE;
|
CK_BBOOL recover = CK_TRUE;
|
||||||
CK_BBOOL wrap = CK_TRUE;
|
CK_BBOOL wrap = CK_TRUE;
|
||||||
CK_BBOOL derive = CK_FALSE;
|
CK_BBOOL derive = CK_FALSE;
|
||||||
|
@ -1268,7 +1269,8 @@ sftk_handlePrivateKeyObject(SFTKSession *session,SFTKObject *object,CK_KEY_TYPE
|
||||||
sftk_item_expand(&mod));
|
sftk_item_expand(&mod));
|
||||||
if (mod.data) PORT_Free(mod.data);
|
if (mod.data) PORT_Free(mod.data);
|
||||||
if (crv != CKR_OK) return crv;
|
if (crv != CKR_OK) return crv;
|
||||||
|
|
||||||
|
sign = CK_TRUE;
|
||||||
break;
|
break;
|
||||||
case CKK_DSA:
|
case CKK_DSA:
|
||||||
if ( !sftk_hasAttribute(object, CKA_SUBPRIME)) {
|
if ( !sftk_hasAttribute(object, CKA_SUBPRIME)) {
|
||||||
|
@ -1278,6 +1280,7 @@ sftk_handlePrivateKeyObject(SFTKSession *session,SFTKObject *object,CK_KEY_TYPE
|
||||||
!sftk_hasAttribute(object, CKA_NETSCAPE_DB)) {
|
!sftk_hasAttribute(object, CKA_NETSCAPE_DB)) {
|
||||||
return CKR_TEMPLATE_INCOMPLETE;
|
return CKR_TEMPLATE_INCOMPLETE;
|
||||||
}
|
}
|
||||||
|
sign = CK_TRUE;
|
||||||
/* fall through */
|
/* fall through */
|
||||||
case CKK_DH:
|
case CKK_DH:
|
||||||
if ( !sftk_hasAttribute(object, CKA_PRIME)) {
|
if ( !sftk_hasAttribute(object, CKA_PRIME)) {
|
||||||
|
@ -1306,6 +1309,7 @@ sftk_handlePrivateKeyObject(SFTKSession *session,SFTKObject *object,CK_KEY_TYPE
|
||||||
return CKR_TEMPLATE_INCOMPLETE;
|
return CKR_TEMPLATE_INCOMPLETE;
|
||||||
}
|
}
|
||||||
encrypt = CK_FALSE;
|
encrypt = CK_FALSE;
|
||||||
|
sign = CK_TRUE;
|
||||||
recover = CK_FALSE;
|
recover = CK_FALSE;
|
||||||
wrap = CK_FALSE;
|
wrap = CK_FALSE;
|
||||||
derive = CK_TRUE;
|
derive = CK_TRUE;
|
||||||
|
@ -1322,7 +1326,7 @@ sftk_handlePrivateKeyObject(SFTKSession *session,SFTKObject *object,CK_KEY_TYPE
|
||||||
if (crv != CKR_OK) return crv;
|
if (crv != CKR_OK) return crv;
|
||||||
crv = sftk_defaultAttribute(object,CKA_DECRYPT,&encrypt,sizeof(CK_BBOOL));
|
crv = sftk_defaultAttribute(object,CKA_DECRYPT,&encrypt,sizeof(CK_BBOOL));
|
||||||
if (crv != CKR_OK) return crv;
|
if (crv != CKR_OK) return crv;
|
||||||
crv = sftk_defaultAttribute(object,CKA_SIGN,&cktrue,sizeof(CK_BBOOL));
|
crv = sftk_defaultAttribute(object,CKA_SIGN,&sign,sizeof(CK_BBOOL));
|
||||||
if (crv != CKR_OK) return crv;
|
if (crv != CKR_OK) return crv;
|
||||||
crv = sftk_defaultAttribute(object,CKA_SIGN_RECOVER,&recover,
|
crv = sftk_defaultAttribute(object,CKA_SIGN_RECOVER,&recover,
|
||||||
sizeof(CK_BBOOL));
|
sizeof(CK_BBOOL));
|
||||||
|
|
Загрузка…
Ссылка в новой задаче