12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- //
- // ECkeyUtils.h
- // RSADemo
- //
- // Created by 武建明 on 2018/6/20.
- // Copyright © 2018年 Ive. All rights reserved.
- //
- #import <Foundation/Foundation.h>
- #import <openssl/pem.h>
- #import <openssl/obj_mac.h>
- #import <openssl/ecdh.h>
- @interface ECkeyPairs : NSObject
- /**
- 私钥PEM
- */
- @property (strong, nonatomic) NSString *privatePem; // pem格式
- @property (strong, nonatomic) NSString *privateKey; // 普通格式
- /**
- 公钥PEM
- */
- @property (strong, nonatomic) NSString *publicPem; // pem格式
- @property (strong, nonatomic) NSString *publicKey; // 普通格式
- /**
- 三方公钥
- */
- @property (strong, nonatomic) NSString *peerPublicPem; // pem格式
- @property (strong, nonatomic) NSString *peerPublicKey; // 普通格式
- /**
- 生成的协商密钥
- */
- @property (strong, nonatomic) NSString *shareKey;
- @end
- @interface ECkeyUtils : NSObject
- @property (strong, nonatomic)ECkeyPairs *eckeyPairs;
- /**
- 生成ECC(椭圆曲线加密算法)的私钥和公钥
- */
- - (void)generatekeyPairs;
- /**
- 根据三方公钥和自持有的私钥经过DH(Diffie-Hellman)算法生成的协商密钥
- @param peerPubPem 三方公钥
- @param privatePem 自持有私钥
- @param length 协商密钥长度
- @return 协商密钥
- */
- + (NSString *)getShareKeyFromPeerPubPem:(NSString *)peerPubPem
- privatePem:(NSString *)privatePem
- length:(int)length;
- + (EC_KEY *)publicKeyFromPEM:(NSString *)publicKeyPEM;
- + (EC_KEY *)privateKeyFromPEM:(NSString *)privateKeyPEM;
- // pem证书转换为普通证书
- + (NSString *)getKeyFromPemKey:(NSString *)pemKey isPrivate:(BOOL)isPrivate;
- // 普通证书转换为pem证书
- + (NSString *)getPemKeyFromKey:(NSString *)key isPrivate:(BOOL)isPrivate;
- @end
|