openssl ec256 c实现加签
时间: 2023-12-02 15:41:14 浏览: 41
以下是使用openssl ec256 c实现加签的步骤:
1.加载私钥
```c
EC_KEY *eckey = NULL;
eckey = EC_KEY_new();
BIO *bio = NULL;
bio = BIO_new_file("private_key.pem", "rb");
eckey = PEM_read_bio_ECPrivateKey(bio, NULL, NULL, NULL);
```
2.创建消息摘要
```c
unsigned char *msg = "hello world";
unsigned char md[32];
unsigned int md_len;
EVP_MD_CTX *mdctx = EVP_MD_CTX_new();
EVP_DigestInit(mdctx, EVP_sha256());
EVP_DigestUpdate(mdctx, msg, strlen(msg));
EVP_DigestFinal(mdctx, md, &md_len);
```
3.进行签名
```c
unsigned char *sig = NULL;
unsigned int sig_len;
sig = (unsigned char *)malloc(ECDSA_size(eckey));
ECDSA_sign(0, md, md_len, sig, &sig_len, eckey);
```
4.输出签名结果
```c
for (int i = 0; i < sig_len; i++) {
printf("%02x", sig[i]);
}
```