Update verifyEd25519Signature() unit test: add a test to detect a key length too small

- add logs in verifyEd25519SignatureJni() to print the key used
This commit is contained in:
pedroGitt 2016-10-26 15:08:39 +02:00
parent b140e48183
commit b0fc867bfe
2 changed files with 9 additions and 2 deletions

View file

@ -86,12 +86,18 @@ public class OlmUtilityTest {
assertTrue(isVerified); assertTrue(isVerified);
assertTrue(String.valueOf(errorMsg).isEmpty()); assertTrue(String.valueOf(errorMsg).isEmpty());
// check a bad signature is detected and the error message is not empty // check a bad signature is detected => errorMsg = BAD_MESSAGE_MAC
String badSignature = "Bad signature Bad signature Bad signature.."; String badSignature = "Bad signature Bad signature Bad signature..";
isVerified = utility.verifyEd25519Signature(badSignature, fingerPrintKey, message, errorMsg); isVerified = utility.verifyEd25519Signature(badSignature, fingerPrintKey, message, errorMsg);
assertFalse(isVerified); assertFalse(isVerified);
assertFalse(String.valueOf(errorMsg).isEmpty()); assertFalse(String.valueOf(errorMsg).isEmpty());
// check bad fingerprint size => errorMsg = INVALID_BASE64
String badSizeFingerPrintKey = fingerPrintKey.substring(fingerPrintKey.length()/2);
isVerified = utility.verifyEd25519Signature(messageSignature, badSizeFingerPrintKey, message, errorMsg);
assertFalse(isVerified);
assertFalse(String.valueOf(errorMsg).isEmpty());
utility.releaseUtility(); utility.releaseUtility();
account.releaseAccount(); account.releaseAccount();
} }

View file

@ -121,6 +121,7 @@ JNIEXPORT jstring OLM_UTILITY_FUNC_DEF(verifyEd25519SignatureJni)(JNIEnv *env, j
size_t keyLength = (size_t)env->GetStringUTFLength(aKey); size_t keyLength = (size_t)env->GetStringUTFLength(aKey);
size_t messageLength = (size_t)env->GetStringUTFLength(aMessage); size_t messageLength = (size_t)env->GetStringUTFLength(aMessage);
LOGD(" ## verifyEd25519SignatureJni(): signatureLength=%lu keyLength=%lu messageLength=%lu",static_cast<long unsigned int>(signatureLength),static_cast<long unsigned int>(keyLength),static_cast<long unsigned int>(messageLength)); LOGD(" ## verifyEd25519SignatureJni(): signatureLength=%lu keyLength=%lu messageLength=%lu",static_cast<long unsigned int>(signatureLength),static_cast<long unsigned int>(keyLength),static_cast<long unsigned int>(messageLength));
LOGD(" ## verifyEd25519SignatureJni(): key=%s",keyPtr);
size_t result = olm_ed25519_verify(utilityPtr, size_t result = olm_ed25519_verify(utilityPtr,
(void const *)keyPtr, (void const *)keyPtr,
@ -132,7 +133,7 @@ JNIEXPORT jstring OLM_UTILITY_FUNC_DEF(verifyEd25519SignatureJni)(JNIEnv *env, j
if(result == olm_error()) { if(result == olm_error()) {
const char *errorMsgPtr = olm_utility_last_error(utilityPtr); const char *errorMsgPtr = olm_utility_last_error(utilityPtr);
errorMessageRetValue = env->NewStringUTF(errorMsgPtr); errorMessageRetValue = env->NewStringUTF(errorMsgPtr);
LOGE("## verifyEd25519SignatureJni(): failure - session creation Msg=%s",errorMsgPtr); LOGE("## verifyEd25519SignatureJni(): failure - olm_ed25519_verify Msg=%s",errorMsgPtr);
} }
else else
{ {