aboutsummaryrefslogtreecommitdiffstats
path: root/libparc/parc/security/parc_CryptoSuite.c
diff options
context:
space:
mode:
authorDevel <acompagn+fdio@cisco.com>2018-04-12 18:07:08 +0200
committerDevel <acompagn+fdio@cisco.com>2018-04-12 18:07:08 +0200
commit75a923f0ee362a039b51a141a719ce50597ca233 (patch)
treedf1b4e1d70db7fada07861dab3eb42c12edb70cb /libparc/parc/security/parc_CryptoSuite.c
parentabf52b860efb2cc0a247ab498cc962851e72c1ee (diff)
Added signature calculation and verification for ECDSA
Change-Id: I946e146b9a6ae33ee294a09417e8366853faa502 Signed-off-by: Devel <acompagn+fdio@cisco.com>
Diffstat (limited to 'libparc/parc/security/parc_CryptoSuite.c')
-rwxr-xr-xlibparc/parc/security/parc_CryptoSuite.c51
1 files changed, 50 insertions, 1 deletions
diff --git a/libparc/parc/security/parc_CryptoSuite.c b/libparc/parc/security/parc_CryptoSuite.c
index 9f4506e7..c807f9aa 100755
--- a/libparc/parc/security/parc_CryptoSuite.c
+++ b/libparc/parc/security/parc_CryptoSuite.c
@@ -28,7 +28,7 @@ parcCryptoSuite_GetCryptoHash(PARCCryptoSuite suite)
case PARCCryptoSuite_DSA_SHA256: // fallthrough
case PARCCryptoSuite_HMAC_SHA256: // fallthrough
case PARCCryptoSuite_RSA_SHA256: // fallthrough
- case PARCCryptoSuite_EC_SECP_256K1:
+ case PARCCryptoSuite_ECDSA_SHA256:
return PARCCryptoHashType_SHA256;
case PARCCryptoSuite_HMAC_SHA512: // fallthrough
@@ -42,3 +42,52 @@ parcCryptoSuite_GetCryptoHash(PARCCryptoSuite suite)
trapIllegalValue(suite, "Unknown crypto suite: %d", suite);
}
}
+
+int
+parcCryptoSuite_GetSignatureSizeBits(PARCCryptoSuite suite, int keyLengthBits)
+{
+ switch (suite) {
+ case PARCCryptoSuite_DSA_SHA256: // fallthrough
+ case PARCCryptoSuite_RSA_SHA256: // fallthrough
+ case PARCCryptoSuite_RSA_SHA512:
+ return keyLengthBits;
+
+ case PARCCryptoSuite_ECDSA_SHA256:
+ return keyLengthBits*2 + 64; //Overhead added by ECDSA
+
+ case PARCCryptoSuite_HMAC_SHA256: // fallthrough
+ case PARCCryptoSuite_HMAC_SHA512: // fallthrough
+ return 512;
+
+ case PARCCryptoSuite_NULL_CRC32C:
+ return 32;
+
+ default:
+ trapIllegalValue(suite, "Unknown crypto suite: %d", suite);
+ }
+}
+
+int
+parcCryptoSuite_GetSignatureSizeBytes(PARCCryptoSuite suite, int keyLengthBits)
+{
+ int keyLengthBytes = keyLengthBits >> 3;
+ switch (suite) {
+ case PARCCryptoSuite_DSA_SHA256: // fallthrough
+ case PARCCryptoSuite_RSA_SHA256: // fallthrough
+ case PARCCryptoSuite_RSA_SHA512:
+ return keyLengthBytes;
+
+ case PARCCryptoSuite_ECDSA_SHA256:
+ return keyLengthBytes*2 + 8; //Overhead added by ECDSA
+
+ case PARCCryptoSuite_HMAC_SHA256: // fallthrough
+ case PARCCryptoSuite_HMAC_SHA512: // fallthrough
+ return 64;
+
+ case PARCCryptoSuite_NULL_CRC32C:
+ return 4;
+
+ default:
+ trapIllegalValue(suite, "Unknown crypto suite: %d", suite);
+ }
+}