aboutsummaryrefslogtreecommitdiff
path: root/xcode/OLMKit/OLMUtility.h
blob: c316829e552a8cb227a7bb7c62358180a6006457 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//
//  OLMUtility.h
//  olm
//
//  Created by Chris Ballinger on 4/8/16.
//
//

#import <Foundation/Foundation.h>

FOUNDATION_EXPORT NSString *const OLMErrorDomain;

@interface OLMUtility : NSObject

/**
 Calculate the SHA-256 hash of the input and encodes it as base64.
 
 @param message the message to hash.
 @return the base64-encoded hash value.
 */
- (NSString*)sha256:(NSData*)message;

/**
 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 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)verifyEd25519Signature:(NSString*)signature key:(NSString*)key message:(NSData*)message error:(NSError**)error;

+ (NSMutableData*) randomBytesOfLength:(NSUInteger)length;

@end