问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

使用Ed25519给数据签名(oc版)

发布网友 发布时间:2022-11-16 10:43

我来回答

1个回答

热心网友 时间:2024-11-24 21:36

         //==============BlinkEd25519.h===========//

       #import  <Foundation/Foundation.h>

#include "Ed25519.h"

@interfaceEd25519Keypair :NSObject

@property (nonatomic,strong) NSData *publickey;//公钥32位

@property (nonatomic,strong) NSData *privatekey;//私钥64位

@end

NS_ASSUME_NONNULL_BEGIN

@interfaceBlinkEd25519 :NSObject

/**

 生成ed25519密钥串

 @return Ed25519Keypair对象,保存一对密钥串

 */

+(Ed25519Keypair*)generateEd25519KeyPair;

/**

 签名数据

 @param ed25519keypair 密钥串

 @param content 需要签名的数据(json格式的字符串)

 @return 签名后的数据

 */

+(NSData*)BLinkEd25519_Signature:(Ed25519Keypair*)ed25519keypair Content:(NSString*)content;

/**

 验证签名数据

 @param signatureData 签名数据

 @param contentData 签名前数据

 @param ed25519keypair ed25519密钥串

 @return 返回是否

 */

+(BOOL)BlinkEd25519_Verify:(NSData*)signatureData content:(NSData*)contentData Ed25519Keypair:(Ed25519Keypair*)ed25519keypair;

@end

//==============BlinkEd25519.m===========//

#import "BlinkEd25519.h"

@implementation Ed25519Keypair

@end

@implementation BlinkEd25519

+(Ed25519Keypair*)generateEd25519KeyPair

{

    unsignedcharseed[32],publickey[32],privatekey[64];

    ed25519_create_seed(seed);

    ed25519_create_keypair(publickey, privatekey, seed);

    Ed25519Keypair *keypair = [[Ed25519Keypair alloc] init];

    keypair.publickey= [NSDatadataWithBytes:publickeylength:32];

    keypair.privatekey= [NSDatadataWithBytes:privatekeylength:64];

    returnkeypair;

}

+(NSData*)BLinkEd25519_Signature:(Ed25519Keypair*)ed25519keypair Content:(NSString*)content

{

    unsignedcharsignature[64];

    NSData *contentData = [content dataUsingEncoding:NSUTF8StringEncoding];

    ed25519_sign(signature, [contentDatabytes], contentData.length, [ed25519keypair.publickeybytes], [ed25519keypair.privatekeybytes]);

    return[NSDatadataWithBytes:signaturelength:64];

}

+(BOOL)BlinkEd25519_Verify:(NSData*)signatureData content:(NSData*)contentData Ed25519Keypair:(Ed25519Keypair*)ed25519keypair

{

    returned25519_verify([signatureDatabytes], [contentDatabytes], contentData.length, [ed25519keypair.privatekeybytes]);

}

@end
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
找专业防水队做完还漏水怎么维权 法院会受理房屋漏水造成的纠纷吗? 巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 347是什么材质 347是啥材质 ...车子有保险,人要10万才签谅解书,没有谅解会判刑坐牢吗 ssh/sFTP 互信免密登陆(key pair) ASTM A182 f347是什么材质,能做不锈钢圆棒吗? 谢谢 用自己的户口替别人代了十万,银行都知道内情 有什么方法让小米4刷入flyme吗? 小米手机怎么刷flyme7 捡到银行卡会被判刑吗? 速冻手抓饼可以蒸吗 一台电脑可以同时登几个 如何改善外油内干皮肤 调整内干外油肌肤告别烦人油光 外干内油皮肤该怎么改善 850气炭两用烤鸭炉电机12v580W要多少安的电源开关 电脑上可以登录两个吗 电脑上能登录两个吗 怎么下载滴滴出租车司机端 猫和老鼠全集bt 求、铁胆火车侠全集BT种子 视频开头电影,求电影名称 帮各位大仙帮我看看这段视频的开头是哪些电影中的片段? 赌资10万元怎么判刑 SSH Key Pair 认证 ...非法所得10万,已退赃,公安取保候审了请问判刑可以判缓刑吗?_百度知 ... 销赃罪涉及金额为10万元,判刑几年?罚款多少? 真实故事:最悲情的富二代:一件事导致两代人锒铛入狱 借十万代款人给了担保人,担保人失联,代款人怎么办? 替人担保十万,银行序代一年、借款人死了怎么办? 美的空调外机响扰民售后能处理吗 美的空调外机噪音大怎么回事 为什么给别人发信息会出现风险提示? grim什么意思 微信调成英语之后在聊天记录里有5-28 p5 ,am500:28这样的时间表示,是... 冬枣树那儿的最好? 赵丽颖和霍建华合唱的歌 小手指弯曲 先天畸形 如何治疗? 宝宝手指畸形能治疗吗? 手机淘宝二维码在哪 “外油内干”补再多水也没用!只需3件事:解决出油,搞定脱皮 无限宝登陆端口是什么 卢绘夏天放室内好还是放室外好