Removed cryptosuite as required parameter while reading p12. Added hashtype 77/12477/1
authorDevel <[email protected]>
Tue, 8 May 2018 15:58:40 +0000 (17:58 +0200)
committerDevel <[email protected]>
Tue, 8 May 2018 15:58:40 +0000 (17:58 +0200)
Change-Id: I5628c4e34b236b02e2c524194735f67024014000
Signed-off-by: Devel <[email protected]>
libparc/parc/security/parc_Identity.c
libparc/parc/security/parc_Identity.h
libparc/parc/security/parc_IdentityFile.c
libparc/parc/security/parc_IdentityFile.h

index a132964..da68fbd 100755 (executable)
@@ -101,7 +101,7 @@ parcIdentity_GetPassWord(const PARCIdentity *identity)
 PARCSigner *
 parcIdentity_CreateSigner(const PARCIdentity *identity, PARCCryptoSuite suite)
 {
-  return identity->interface->GetSigner(identity->instance, suite);
+  return identity->interface->GetSigner(identity->instance, parcCryptoSuite_GetSigningAlgorithm(suite));
 }
 
 void
index 32b9b17..2cdcbad 100755 (executable)
@@ -74,7 +74,7 @@ typedef struct parc_identity_interface {
     /**
      * @see parcIdentity_CreateSigner
      */
-    PARCSigner *(*GetSigner)(const void *identity, PARCCryptoSuite suite);
+    PARCSigner *(*GetSigner)(const void *identity, PARCCryptoHashType hash);
 
     /**
      * @see parcIdentity_Equals
index 38d3637..0d22a51 100644 (file)
@@ -42,7 +42,7 @@ PARCIdentityInterface *PARCIdentityFileAsPARCIdentity = &(PARCIdentityInterface)
     .Release = (void (*)(void **))parcIdentityFile_Release,
     .GetPassWord = (void *(*)(const void *))parcIdentityFile_GetPassWord,
     .GetFileName = (void *(*)(const void *))parcIdentityFile_GetFileName,
-    .GetSigner = (PARCSigner * (*)(const void *, PARCCryptoSuite))parcIdentityFile_CreateSigner,
+    .GetSigner = (PARCSigner * (*)(const void *, PARCCryptoHashType))parcIdentityFile_CreateSigner,
     .Equals = (bool (*)(const void *, const void *))parcIdentityFile_Equals,
     .Display = (void (*)(const void *, size_t))parcIdentityFile_Display
 };
@@ -104,7 +104,7 @@ parcIdentityFile_GetPassWord(const PARCIdentityFile *identity)
 }
 
 PARCSigner *
-parcIdentityFile_CreateSigner(const PARCIdentityFile *identity, PARCCryptoSuite suite)
+parcIdentityFile_CreateSigner(const PARCIdentityFile *identity, PARCCryptoHashType hash)
 {
     PARCPkcs12KeyStore *keyStore = parcPkcs12KeyStore_Open(identity->fileName, identity->passWord, PARCCryptoHashType_SHA256);
     PARCKeyStore *publicKeyStore = parcKeyStore_Create(keyStore, PARCPkcs12KeyStoreAsKeyStore);
@@ -112,8 +112,7 @@ parcIdentityFile_CreateSigner(const PARCIdentityFile *identity, PARCCryptoSuite
 
     PARCSigningAlgorithm signAlgo = parcKeyStore_getSigningAlgorithm(publicKeyStore);
 
-    if (signAlgo != parcCryptoSuite_GetSigningAlgorithm(suite))
-      return NULL;
+    PARCCryptoSuite suite = parcCryptoSuite_GetFromSigningHash(signAlgo, hash);
     
     PARCPublicKeySigner *signer = parcPublicKeySigner_Create(publicKeyStore, suite);
     PARCSigner *pkSigner = parcSigner_Create(signer, PARCPublicKeySignerAsSigner);
index c125ffb..46ff87c 100644 (file)
@@ -205,7 +205,7 @@ const char *parcIdentityFile_GetPassWord(const PARCIdentityFile *identity);
  * }
  * @endcode
  */
-PARCSigner *parcIdentityFile_CreateSigner(const PARCIdentityFile *identity, PARCCryptoSuite suite);
+PARCSigner *parcIdentityFile_CreateSigner(const PARCIdentityFile *identity, PARCCryptoHashType hash);
 
 /**
  * Determine if two PARCIdentityFiles are equal.