diff options
author | dec05eba <dec05eba@protonmail.com> | 2020-11-05 01:45:06 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2020-11-05 01:45:06 +0100 |
commit | 2a8202e74846d191a321cca1202175af9db6107d (patch) | |
tree | a6f455caf07da1186851f343a237a4c4e4484f46 /xcode/OLMKit/OLMPkSigning.m | |
parent | 8efa0ec17d8c262f9c3fd7603e8074f74a053708 (diff) |
Diffstat (limited to 'xcode/OLMKit/OLMPkSigning.m')
-rw-r--r-- | xcode/OLMKit/OLMPkSigning.m | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/xcode/OLMKit/OLMPkSigning.m b/xcode/OLMKit/OLMPkSigning.m deleted file mode 100644 index d5c7d09..0000000 --- a/xcode/OLMKit/OLMPkSigning.m +++ /dev/null @@ -1,125 +0,0 @@ -/* - Copyright 2019 New Vector Ltd - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - */ - -#import "OLMPkSigning.h" - -#include "olm/olm.h" -#include "olm/pk.h" -#include "OLMUtility.h" - -@interface OLMPkSigning () -{ - OlmPkSigning *sign; -} -@end - -@implementation OLMPkSigning - -- (void)dealloc { - olm_clear_pk_signing(sign); - free(sign); -} - - -- (instancetype)init { - self = [super init]; - if (self) { - sign = (OlmPkSigning *)malloc(olm_pk_signing_size()); - olm_pk_signing(sign); - } - return self; -} - -- (NSString *)doInitWithSeed:(NSData *)seed error:(NSError *__autoreleasing _Nullable *)error { - size_t publicKeyLength = olm_pk_signing_public_key_length(); - NSMutableData *publicKeyData = [NSMutableData dataWithLength:publicKeyLength]; - if (!publicKeyData) { - return nil; - } - - NSMutableData *mutableSeed = [NSMutableData dataWithData:seed]; - - size_t result = olm_pk_signing_key_from_seed(sign, - publicKeyData.mutableBytes, publicKeyLength, - mutableSeed.mutableBytes, mutableSeed.length); - if (result == olm_error()) { - const char *olm_error = olm_pk_signing_last_error(sign); - - NSString *errorString = [NSString stringWithUTF8String:olm_error]; - NSLog(@"[OLMPkSigning] doInitWithSeed: olm_pk_signing_key_from_seed error: %@", errorString); - - if (error && olm_error && errorString) { - *error = [NSError errorWithDomain:OLMErrorDomain - code:0 - userInfo:@{ - NSLocalizedDescriptionKey: errorString, - NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"olm_pk_signing_key_from_seed error: %@", errorString] - }]; - } - - return nil; - } - - [mutableSeed resetBytesInRange:NSMakeRange(0, mutableSeed.length)]; - - NSString *publicKey = [[NSString alloc] initWithData:publicKeyData encoding:NSUTF8StringEncoding]; - return publicKey; -} - -- (NSString *)sign:(NSString *)message error:(NSError *__autoreleasing _Nullable *)error { - NSData *messageData = [message dataUsingEncoding:NSUTF8StringEncoding]; - - size_t signatureLength = olm_pk_signature_length(); - NSMutableData *signatureData = [NSMutableData dataWithLength:signatureLength]; - if (!signatureData) { - return nil; - } - - size_t result = olm_pk_sign(sign, - messageData.bytes, messageData.length, - signatureData.mutableBytes, signatureLength); - if (result == olm_error()) { - const char *olm_error = olm_pk_signing_last_error(sign); - - NSString *errorString = [NSString stringWithUTF8String:olm_error]; - NSLog(@"[OLMPkSigning] sign: olm_pk_sign error: %@", errorString); - - if (error && olm_error && errorString) { - *error = [NSError errorWithDomain:OLMErrorDomain - code:0 - userInfo:@{ - NSLocalizedDescriptionKey: errorString, - NSLocalizedFailureReasonErrorKey: [NSString stringWithFormat:@"olm_pk_sign error: %@", errorString] - }]; - } - - return nil; - } - - NSString *signature = [[NSString alloc] initWithData:signatureData encoding:NSUTF8StringEncoding]; - return signature; -} - -+ (NSData *)generateSeed { - size_t seedLength = olm_pk_signing_seed_length(); - NSMutableData *seed = [OLMUtility randomBytesOfLength:seedLength]; - if (!seed) { - return nil; - } - - return seed; -} - -@end |