diff options
author | manuroe <manu@matrix.org> | 2016-10-14 15:57:12 +0200 |
---|---|---|
committer | manuroe <manu@matrix.org> | 2016-10-14 15:57:12 +0200 |
commit | 4a2aac5800dacb3de935f6594e4d213087cb7cb5 (patch) | |
tree | 00f6846f32bc6d40d82119d5568b660a9f4ed4ba /xcode/OLMKit | |
parent | d1060af8f0dec312447567cce0bc812c82b7343f (diff) |
OLMKit: Add signature tests
Diffstat (limited to 'xcode/OLMKit')
-rw-r--r-- | xcode/OLMKit/OLMUtility.h | 4 | ||||
-rw-r--r-- | xcode/OLMKit/OLMUtility.m | 7 |
2 files changed, 5 insertions, 6 deletions
diff --git a/xcode/OLMKit/OLMUtility.h b/xcode/OLMKit/OLMUtility.h index eca9d3a..a8a3743 100644 --- a/xcode/OLMKit/OLMUtility.h +++ b/xcode/OLMKit/OLMUtility.h @@ -13,16 +13,16 @@ /** Verify an ed25519 signature. + @param signature the base64-encoded signature to be checked. @param key the ed25519 key. @param message the message which was signed. - @param signature the base64-encoded signature to be checked. @param the result error if there is a problem with the verification. If the key was too small then the message will be "OLM.INVALID_BASE64". If the signature was invalid then the message will be "OLM.BAD_MESSAGE_MAC". @return YES if valid. */ -- (BOOL)ed25519Verify:(NSString*)key message:(NSString*)message signature:(NSString*)signature error:(NSError**)error; +- (BOOL)verifyEd25519Signature:(NSString*)signature key:(NSString*)key message:(NSData*)message error:(NSError**)error; + (NSMutableData*) randomBytesOfLength:(NSUInteger)length; diff --git a/xcode/OLMKit/OLMUtility.m b/xcode/OLMKit/OLMUtility.m index 1553a81..041da2f 100644 --- a/xcode/OLMKit/OLMUtility.m +++ b/xcode/OLMKit/OLMUtility.m @@ -50,19 +50,18 @@ return self; } -- (BOOL)ed25519Verify:(NSString *)key message:(NSString *)message signature:(NSString *)signature error:(NSError *__autoreleasing *)error { +- (BOOL)verifyEd25519Signature:(NSString*)signature key:(NSString*)key message:(NSData*)message error:(NSError**)error { NSData *keyData = [key dataUsingEncoding:NSUTF8StringEncoding]; - NSData *messageData = [message dataUsingEncoding:NSUTF8StringEncoding]; NSData *signatureData = [signature dataUsingEncoding:NSUTF8StringEncoding]; size_t result = olm_ed25519_verify(_utility, keyData.bytes, keyData.length, - messageData.bytes, messageData.length, + message.bytes, message.length, signatureData.bytes, signatureData.length ); - if (result < 0) { + if (result < 0 || result == (size_t)-1) { if (error) { NSDictionary *userInfo = @{NSLocalizedFailureReasonErrorKey: [NSString stringWithUTF8String:olm_utility_last_error(_utility)]}; |