diff options
author | Mauro Sardara <msardara+fdio@cisco.com> | 2018-04-14 21:15:13 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@fd.io> | 2018-04-14 21:15:13 +0000 |
commit | e4fcd260cb99434033a8ccfba12eee12dab190b9 (patch) | |
tree | 62747658a0b72bcb7a58ca6144394d047cf99e31 /libparc/parc/security/parc_CryptoSuite.c | |
parent | cd6bef4b0a73e151f9c891428bc5335cb0ef477e (diff) | |
parent | f1a29ee82f6f6adf439064e1247d00168b579585 (diff) |
Merge "Added method to retrieve a PARCCryptoSuite from a PARCSigningAlgorithm and a PARCCryptoHashType" into cframework/master
Diffstat (limited to 'libparc/parc/security/parc_CryptoSuite.c')
-rwxr-xr-x | libparc/parc/security/parc_CryptoSuite.c | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/libparc/parc/security/parc_CryptoSuite.c b/libparc/parc/security/parc_CryptoSuite.c index c807f9aa..32b1431e 100755 --- a/libparc/parc/security/parc_CryptoSuite.c +++ b/libparc/parc/security/parc_CryptoSuite.c @@ -20,6 +20,7 @@ #include <LongBow/runtime.h> #include <parc/security/parc_CryptoSuite.h> +#include <parc/security/parc_SigningAlgorithm.h> PARCCryptoHashType parcCryptoSuite_GetCryptoHash(PARCCryptoSuite suite) @@ -91,3 +92,44 @@ parcCryptoSuite_GetSignatureSizeBytes(PARCCryptoSuite suite, int keyLengthBits) trapIllegalValue(suite, "Unknown crypto suite: %d", suite); } } + +PARCCryptoSuite parcCryptoSuite_GetFromSigningHash(PARCSigningAlgorithm signAlgo, PARCCryptoHashType hash) { + + switch (signAlgo) { + case PARCSigningAlgorithm_DSA: + return PARCCryptoSuite_DSA_SHA256 + hash -1; + case PARCSigningAlgorithm_RSA: + return PARCCryptoSuite_RSA_SHA256 + hash -1; + case PARCSigningAlgorithm_ECDSA: + return PARCCryptoSuite_ECDSA_SHA256 + hash -1; + case PARCSigningAlgorithm_NULL: + return PARCCryptoSuite_NULL_CRC32C; + default: + trapIllegalValue(suite, "Unknown signing algorithm suite: %d", signAlgo); + } +} + +PARCSigningAlgorithm +parcCryptoSuite_GetSigningAlgorithm(PARCCryptoSuite suite) +{ + switch (suite) { + case PARCCryptoSuite_DSA_SHA256: + return PARCSigningAlgorithm_DSA; + + case PARCCryptoSuite_RSA_SHA256: // fallthrough + case PARCCryptoSuite_RSA_SHA512: + return PARCSigningAlgorithm_RSA; + + case PARCCryptoSuite_HMAC_SHA256: // fallthrough + case PARCCryptoSuite_HMAC_SHA512: + return PARCSigningAlgorithm_HMAC; + + case PARCCryptoSuite_ECDSA_SHA256: + return PARCSigningAlgorithm_ECDSA; + case PARCCryptoSuite_NULL_CRC32C: + return PARCSigningAlgorithm_NULL; + + default: + trapIllegalValue(suit, "Unknown crypto suite: %d", suite); + } +} |