aboutsummaryrefslogtreecommitdiffstats
path: root/libparc/parc/security/parc_CryptoSuite.c
diff options
context:
space:
mode:
authorDevel <acompagn+fdio@cisco.com>2018-04-14 16:22:36 +0200
committerDevel <acompagn+fdio@cisco.com>2018-04-14 16:22:36 +0200
commitf1a29ee82f6f6adf439064e1247d00168b579585 (patch)
tree7f45d41d77c3ed8e86ee5a52c673ce2773fc7679 /libparc/parc/security/parc_CryptoSuite.c
parent75a923f0ee362a039b51a141a719ce50597ca233 (diff)
Added method to retrieve a PARCCryptoSuite from a PARCSigningAlgorithm and a PARCCryptoHashType
Change-Id: I98124a9315470ec2335dbc9dc079575c67f239c1 Signed-off-by: Devel <acompagn+fdio@cisco.com>
Diffstat (limited to 'libparc/parc/security/parc_CryptoSuite.c')
-rwxr-xr-xlibparc/parc/security/parc_CryptoSuite.c42
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);
+ }
+}