Tôi có khóa riêng ở p12 có cụm mật khẩu trống. Bây giờ khi tôi đang cố gắng nhập khóa riêng này bằng cách sử dụng SecPKCS12Import
trên OS X hoặc iOS, tôi đã gặp lỗi (tương đương với các tác phẩm Windows).SecPKCS12Nhập khi p12 requries cụm mật khẩu trống
- (NSError *)setClientIdentityCertificateFromPKCS12Data: (NSData *)PKCS12Data withPassword: (NSString *)password
{
OSStatus securityError = errSecSuccess;
const void *keys[] = { kSecImportExportPassphrase };
const void *values[] = { (__bridge CFStringRef)password };
CFDictionaryRef optionsDictionary = NULL;
optionsDictionary = CFDictionaryCreate(
NULL, keys,
values, (password?1:0),
NULL, NULL);
CFArrayRef items = NULL;
securityError = SecPKCS12Import((__bridge CFDataRef)PKCS12Data,
optionsDictionary,
&items);
Tôi đã thử kết hợp khác nhau khi mật khẩu là rỗng:
optionsDictionary = NULL
optionsDictionary
không có giá trịoptionsDictionary
với@""
giá trị cho khóakSecImportExportPassphrase
Nó luôn luôn kết thúc bằng securityError
không bằng errSecSuccess
. Tương ứng:
securityError=-25260
"Cụm mật khẩu là bắt buộc để nhập/xuất".securityError=-25260
"Cụm mật khẩu là bắt buộc để nhập/xuất".securityError=-25264
"xác minh MAC thất bại trong pkcs12 nhập khẩu (sai mật khẩu?)"
Bây giờ tôi Ok mà nó không hoạt động. Tôi cho rằng p12
không có mật khẩu là một mối đe dọa bảo mật, nhưng nếu đây là lý do tại sao nó không hoạt động, tôi cần một số tài liệu nêu rõ điều đó. Tôi đã cố gắng sử dụng Google mà không có may mắn cho đến nay.
Tôi cũng đã cố gắng nhập tệp này vào ứng dụng OS X Keychain với cùng một kết quả (mật khẩu không hợp lệ), vì vậy đây phải là sự cố với SecPKCS12Import
.
Hoặc có thể có cách khắc phục sự cố này?