gpt4 book ai didi

ios - Objective-C:JWT - 使用私钥的字符串数据使用 RS256 编码

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:01:39 33 4
gpt4 key购买 nike

我正在使用这个库来编码一个 RS256 token https://github.com/yourkarma/JWT

在文档中有一个处理RS256编码的例子

NSDictionary *payload = @{@"payload" : @"hidden_information"};
NSString *algorithmName = @"RS256";

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"secret_key" ofType:@"p12"];
NSData *privateKeySecretData = [NSData dataWithContentsOfFile:filePath];

NSString *passphraseForPrivateKey = @"secret";

JWTBuilder *builder = [JWTBuilder encodePayload:payload].secretData(privateKeySecretData).privateKeyCertificatePassphrase(passphraseForPrivateKey).algorithmName(algorithmName);
NSString *token = builder.encode;

现在,因为我只有一串类似这样的私钥:

"-----BEGIN RSA PRIVATE KEY-----\nMIIEpAIBAAKCAQEAtN7LQq7l9a9....SUug==\n-----END RSA PRIVATE KEY-----\n"

我想知道如何实现它?显然我不需要密码。

提前致谢

最佳答案

在同事的帮助下,事实证明这并不难 ;-)

解决方法如下:

NSDictionary *payload = @{@"payload" : @"hidden_information"};

id <JWTAlgorithmDataHolderProtocol> holder = [JWTAlgorithmRSFamilyDataHolder new]
.keyExtractorType([JWTCryptoKeyExtractor privateKeyWithPEMBase64].type)
.privateKeyCertificatePassphrase(nil)
.algorithmName(JWTAlgorithmNameRS256)
.secret(<string of the private key as above>);

JWTCodingResultType *result = [JWTEncodingBuilder encodePayload:payload]
.addHolder(holder)
.result;

NSString *token = result.successResult.encoded;
NSError *error = result.errorResult.error;

关于ios - Objective-C:JWT - 使用私钥的字符串数据使用 RS256 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52464995/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com