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
/**
* @see parcIdentity_CreateSigner
*/
- PARCSigner *(*GetSigner)(const void *identity, PARCCryptoSuite suite);
+ PARCSigner *(*GetSigner)(const void *identity, PARCCryptoHashType hash);
/**
* @see parcIdentity_Equals
.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
};
}
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);
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);