diff options
Diffstat (limited to 'standalone/src')
| -rw-r--r-- | standalone/src/main/resources/cz/crcs/ectester/standalone/libs/jni/botan.cpp | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/standalone/src/main/resources/cz/crcs/ectester/standalone/libs/jni/botan.cpp b/standalone/src/main/resources/cz/crcs/ectester/standalone/libs/jni/botan.cpp index c5bc5f1..4227997 100644 --- a/standalone/src/main/resources/cz/crcs/ectester/standalone/libs/jni/botan.cpp +++ b/standalone/src/main/resources/cz/crcs/ectester/standalone/libs/jni/botan.cpp @@ -496,11 +496,16 @@ JNIEXPORT jbyteArray JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSig emsa = "EMSA1(SHA-512)"; } + Botan::Signature_Format sigformat = Botan::Signature_Format::DER_SEQUENCE; + if (type_str.find("ECKCDSA") != std::string::npos) { + sigformat = Botan::Signature_Format::IEEE_1363; + } + jsize data_length = env->GetArrayLength(data); jbyte *data_bytes = env->GetByteArrayElements(data, nullptr); std::vector<uint8_t> sig; try { - Botan::PK_Signer signer(*skey, rng, emsa, Botan::DER_SEQUENCE); + Botan::PK_Signer signer(*skey, rng, emsa, sigformat); native_timing_start(); sig = signer.sign_message((uint8_t*) data_bytes, data_length, rng); @@ -581,6 +586,11 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna emsa = "EMSA1(SHA-512)"; } + Botan::Signature_Format sigformat = Botan::Signature_Format::DER_SEQUENCE; + if (type_str.find("ECKCDSA") != std::string::npos) { + sigformat = Botan::Signature_Format::IEEE_1363; + } + jsize data_length = env->GetArrayLength(data); jsize sig_length = env->GetArrayLength(signature); jbyte *data_bytes = env->GetByteArrayElements(data, nullptr); @@ -589,7 +599,7 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna bool result; try { - Botan::PK_Verifier verifier(*pkey, emsa, Botan::DER_SEQUENCE); + Botan::PK_Verifier verifier(*pkey, emsa, sigformat); native_timing_start(); result = verifier.verify_message((uint8_t*)data_bytes, data_length, (uint8_t*)sig_bytes, sig_length); |
