Я создаю CSR из openSSL, но из-за того, что OpenSSL не хранит ключи в защищенном анклаве, я выбираю объект C для создания пары ключей (закрытый ключ и открытый ключ) в защищенном анклаве и отправки OpenSSL для сертификата X509. Я получаю открытый ключ в NSData, а затем конвертирую const unsigned char * bitsOfKeyDataPublicKey = (unsigned char *) [publicKey bytes];
, а затем создаю открытый ключ EC_KEY*_ec_keyPublic = d2i_EC_PUBKEY(NULL,&bitsOfKeyDataPublicKey, publicKeyLegnth);
. Но для частного ключа мы получаем SecKeyRef
из объекта c, поэтому для создания EC_Key
как мы можем преобразовать закрытый ключ или это каким-либо образом преобразовать или использовать закрытый ключ? Ищите ответ. БлагодаряПреобразование SecKeyRef в EC_KEY в iOS
0
A
ответ
1
Вы можете изменить секретный ключ от SecKeyRef
к NSData
Пример:
- (NSData *)getPrivateKeyBits {
OSStatus sanityCheck = noErr;
NSData * privateKeyBits = nil;
NSMutableDictionary * queryPrivateKey = [[NSMutableDictionary alloc] init];
// Set the public key query dictionary.
[queryPrivateKey setObject:(id)kSecClassKey forKey:(id)kSecClass];
[queryPrivateKey setObject:_privateTag forKey:(id)kSecAttrApplicationTag];
[queryPrivateKey setObject:(id)kSecAttrKeyTypeEC forKey:(id)kSecAttrKeyType];
[queryPrivateKey setObject:[NSNumber numberWithBool:YES] forKey:(id)kSecReturnData];
// Get the key bits.
sanityCheck = SecItemCopyMatching((__bridge CFDictionaryRef)queryPrivateKey, (void *)&privateKeyBits);
if (sanityCheck != noErr) {
privateKeyBits = nil;
}
else if (sanityCheck == errSecItemNotFound) {
privateKeyBits = nil;
}
return privateKeyBits;
}
Не забудьте использовать _privateTag
используется для генерации закрытого ключа
теперь вы можете использовать:
const unsigned char *bitsOfKeyDataPrivateKey = (unsigned char *) [[self getPrivateKeyBits] bytes];
EC_KEY *_ec_keyPrivate = d2i_EC_PUBKEY(NULL,&bitsOfKeyDataPrivateKey, privateKeyLegnth);
Смежные вопросы
- 1. Преобразование NSData в SecKeyRef
- 2. Преобразование NSData в SecKeyRef
- 3. iOS SecKeyRef to NSData
- 4. iOS SecKeyRef от NSString
- 5. Экспортировать открытый ключ и закрытый ключ из EC_KEY OpenSSL в SecKeyRef
- 6. Преобразование Raw RSA Значение ключа в SecKeyRef Объект для шифрования
- 7. От NSData до SecKeyRef в swift 2
- 8. Сохранение симметричного ключа SecKeyRef в OSX
- 9. SecKeyRef to base64 и обратно в swift
- 10. iOS брелок проблема. SecKeyRef всегда является нулевым как результат SecItemCopyMatching()
- 11. Преобразование даты в iOS
- 12. Преобразование приложения iOS 7 в iOS 6
- 13. iOS - преобразование XML в NSString
- 14. ios преобразование проекта в дугу
- 15. Преобразование приложений iOS в Android
- 16. Преобразование Flash в приложение iOS
- 17. iOS: Преобразование id в int
- 18. Преобразование приложения iOS в Android
- 19. Преобразование iOS localTimeZone в известнуюTimeZone
- 20. Преобразование в NSArray - iOS sdk
- 21. Преобразование PrivateKey (SecRefKey) в NSData или Base64
- 22. Создать SecKeyRef из открытого ключа base64 RSA
- 23. Добавление SecKeyRef, SecIdentityRefs к OS X брелок
- 24. Преобразование h263 в h264 в iOS
- 25. Преобразование NSArray в NSstring в IOS
- 26. Преобразование строки в целое число в ios
- 27. Преобразование NSInlineData в Nstring в ios
- 28. преобразование nsMutablestring в nsdata в ios
- 29. XML в преобразование JSON в iOS
- 30. Преобразование Imperial в метрику в iOS?
Что должно дать в "privateKeyLegnth"? –