mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-07-04 10:30:42 +00:00
Fix pkey
This commit is contained in:
parent
1e0e69acb6
commit
516db55483
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
#include <openssl/pkcs7.h>
|
#include <openssl/pkcs7.h>
|
||||||
|
#include <openssl/pem.h>
|
||||||
|
|
||||||
static NSString * _Nullable readName(X509_NAME *subject) {
|
static NSString * _Nullable readName(X509_NAME *subject) {
|
||||||
BIO *subjectBio = BIO_new(BIO_s_mem());
|
BIO *subjectBio = BIO_new(BIO_s_mem());
|
||||||
@ -13,6 +14,16 @@ static NSString * _Nullable readName(X509_NAME *subject) {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static NSData * _Nullable readPublicKey(EVP_PKEY *subject) {
|
||||||
|
BIO *subjectBio = BIO_new(BIO_s_mem());
|
||||||
|
PEM_write_bio_PUBKEY(subjectBio, subject);
|
||||||
|
char *dataStart = NULL;
|
||||||
|
long nameLength = BIO_get_mem_data(subjectBio, &dataStart);
|
||||||
|
NSString *result = [[NSString alloc] initWithBytes:dataStart length:nameLength encoding:NSUTF8StringEncoding];
|
||||||
|
BIO_free(subjectBio);
|
||||||
|
return [result dataUsingEncoding:NSUTF8StringEncoding];
|
||||||
|
}
|
||||||
|
|
||||||
@implementation MTPKCS
|
@implementation MTPKCS
|
||||||
|
|
||||||
- (instancetype)initWithIssuerName:(NSString *)issuerName subjectName:(NSString *)subjectName data:(NSData *)data {
|
- (instancetype)initWithIssuerName:(NSString *)issuerName subjectName:(NSString *)subjectName data:(NSData *)data {
|
||||||
@ -68,7 +79,10 @@ static NSString * _Nullable readName(X509_NAME *subject) {
|
|||||||
NSString *issuerNameString = readName(issuerName);
|
NSString *issuerNameString = readName(issuerName);
|
||||||
NSString *subjectNameString = readName(subjectName);
|
NSString *subjectNameString = readName(subjectName);
|
||||||
|
|
||||||
result = [[MTPKCS alloc] initWithIssuerName:issuerNameString subjectName:subjectNameString data:[NSData data]];
|
EVP_PKEY *publicKey = X509_get_pubkey(cert);
|
||||||
|
NSData *data = readPublicKey(publicKey);
|
||||||
|
|
||||||
|
result = [[MTPKCS alloc] initWithIssuerName:issuerNameString subjectName:subjectNameString data:data];
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user