aboutsummaryrefslogtreecommitdiff
path: root/xcode/OLMKit
diff options
context:
space:
mode:
Diffstat (limited to 'xcode/OLMKit')
-rw-r--r--xcode/OLMKit/OLMUtility.h4
-rw-r--r--xcode/OLMKit/OLMUtility.m7
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)]};