From 5af1807f38e2125c2b0ad9ef14056e1c2c080eaf Mon Sep 17 00:00:00 2001 From: Fabrice Drouin Date: Thu, 9 Jul 2020 15:59:07 +0200 Subject: [PATCH] Fix signature format detection (#6) 64 bytes means compact, less is invalid, other try DER and let the library handle the actual check. --- .../src/fr_acinq_secp256k1_Secp256k1CFunctions.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/jni/c/src/fr_acinq_secp256k1_Secp256k1CFunctions.c b/jni/c/src/fr_acinq_secp256k1_Secp256k1CFunctions.c index c9f950c..96fe4b6 100644 --- a/jni/c/src/fr_acinq_secp256k1_Secp256k1CFunctions.c +++ b/jni/c/src/fr_acinq_secp256k1_Secp256k1CFunctions.c @@ -186,18 +186,9 @@ JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256 int GetSignatureFormat(size_t size) { - switch(size) { - case 64: - return SIG_FORMAT_COMPACT; - break; - case 70: - case 71: - case 72: - case 73: - return SIG_FORMAT_DER; - break; - default: return SIG_FORMAT_UNKNOWN; - } + if (size == 64) return SIG_FORMAT_COMPACT; + if (size < 64) return SIG_FORMAT_UNKNOWN; + return SIG_FORMAT_DER; } /*