MJegorovas
07/12/2021, 9:30 AMMJegorovas
07/12/2021, 9:30 AMlet attributes: [CFString: Any] = [
kSecAttrKeyType: kSecAttrKeyTypeRSA,
kSecAttrKeySizeInBits: 2048,
kSecAttrKeyClass: kSecAttrKeyClassPublic
]
var error: Unmanaged<CFError>?
guard let secKey = SecKeyCreateRandomKey(
attributes as CFDictionary, &error) else
{
throw error!.takeRetainedValue() as Error
}
MJegorovas
07/12/2021, 9:31 AMrusshwolf
07/12/2021, 12:29 PMMJegorovas
07/19/2021, 2:44 PMNSString *k = @"MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArm0yTy795TtyaF8NW+9syE3w1aVrJkHjrZbim3L8x4Zj0Lh/esKBLu61BTUmlrSJjPLrr8cxHExX/bf6X/YAhCKclEF7hUi8RyFoUVuly3nz+GU3VjGq6Hvtv5clYv4ilN3N6/lQKNeG21MuWaOu6gOdgjU1RUf9XiFT56lR5T1wAYIvJPiRlUWWM3twmuKtuhKlD+1koz/uCApmMjFDUtOvbL914toTNQxXBCA44fUGGg3AKtA3/cB9pNpY0u+Z2wsPqxSVTQx2EcqlZ1R3BL8BkUB6vrXpsFxt9MFHc4Rb5AuFMGGJvaAuTzVE/JN0rGvqB7k+7KkCiqucOrExFwIDAQAB";
NSData *data = [[NSData alloc] initWithBase64EncodedString:k options:0];
NSDictionary *attributes = @{ (id)kSecAttrKeyType: (id)kSecAttrKeyTypeRSA, (id)kSecAttrKeyClass: (id)kSecAttrKeyClassPublic };
SecKeyRef key = SecKeyCreateWithData((__bridge CFDataRef) data, (__bridge CFDictionaryRef) attributes, nil);
Kotlin (SecKeyCreateWithData
call returns null
)
val keyString = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArm0yTy795TtyaF8NW+9syE3w1aVrJkHjrZbim3L8x4Zj0Lh/esKBLu61BTUmlrSJjPLrr8cxHExX/bf6X/YAhCKclEF7hUi8RyFoUVuly3nz+GU3VjGq6Hvtv5clYv4ilN3N6/lQKNeG21MuWaOu6gOdgjU1RUf9XiFT56lR5T1wAYIvJPiRlUWWM3twmuKtuhKlD+1koz/uCApmMjFDUtOvbL914toTNQxXBCA44fUGGg3AKtA3/cB9pNpY0u+Z2wsPqxSVTQx2EcqlZ1R3BL8BkUB6vrXpsFxt9MFHc4Rb5AuFMGGJvaAuTzVE/JN0rGvqB7k+7KkCiqucOrExFwIDAQAB"
val decodedKey = NSData.create(keyString, 0)
val keyRef = CFBridgingRetain(decodedKey) as CFDataRef
val attributes = NSDictionary.create(
mapOf(
kSecAttrKeyType to kSecAttrKeyTypeRSA,
kSecAttrKeyClass to kSecAttrKeyClassPublic
)
)
val attributesRef = CFBridgingRetain(attributes) as CFDictionaryRef
val key = SecKeyCreateWithData(keyRef, attributesRef, null)
Maybe you have some suggestions what I am doing wrong?russhwolf
07/19/2021, 3:14 PMMJegorovas
07/20/2021, 9:29 AMThe operation couldn't be completed. (OSStatus error -50 - Unsupported key type: (null))
. The problem can be fixed like this (couldn't think of a way to write this in words):
val decodedKey = NSData.create("MIIBI...", 0)
... rest of the same code
but I want it passed as a variable. Is there a way to do that?russhwolf
07/20/2021, 5:08 PMNSString