我的最终目标是创建一个 JWE 字符串,为 iOS 提供一个公钥。
为了让我自己更轻松,我最紧迫地分解了我的步骤,我需要使用 RSA 加密从秘密密钥和公共密钥字符串创建一个加密密钥。
我在堆栈溢出和互联网的其他地方尝试了很多在这里找到的东西。由于各种原因,他们只是没有解决。
我被一些 Objective C 代码引导:
/* Device Data encryption - create JWE given DS publicKey */ +(NSString *)createJWE:(NSString *)payload withPublicKey:(SecKeyRef)publicKey {
// create secretKey for encryption
NSData *secret = [self generateRandom:(KEY_SIZE*2)];
NSData *hmacKey = [secret subdataWithRange:NSMakeRange(0, KEY_SIZE)]; NSData *aesKey = [secret subdataWithRange:NSMakeRange(KEY_SIZE,
KEY_SIZE)];
NSData *iv = [self generateRandom: IV_SIZE];
// create header
NSString *header = @"{\"enc\":\"A128CBC-HS256\",\"alg\":\"RSA-OAEP\"}";
// encrypt secretKey
NSData *encryptedKey = [self rsaEncrypt:secret key:publicKey];
// encrypt payload
NSData *encrypted = [self …Run Code Online (Sandbox Code Playgroud)