summaryrefslogtreecommitdiff
path: root/security/libtcpa/patches/patch-examples_createkey.c
blob: 601840b86a569c873d36459aaedfa53b455975bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$NetBSD: patch-examples_createkey.c,v 1.2 2020/10/26 10:04:12 schmonz Exp $

Fix build with OpenSSL 1.1.

--- examples/createkey.c.orig	2020-03-27 18:50:53.384965280 +0000
+++ examples/createkey.c
@@ -21,7 +21,7 @@ int main(int argc, char *argv[])
     keydata q;                    /* keydata structure for resulting key */
     RSA *rsa;                     /* OpenSSL format Public Key */
     FILE *keyfile;                /* output file for public key */
-    EVP_PKEY pkey;                /* OpenSSL public key */
+    EVP_PKEY *pkey;                /* OpenSSL public key */
     unsigned char pkeyname[256];  /* file name string of public key file */
 
     if (argc < 5) {
@@ -77,18 +77,20 @@ int main(int argc, char *argv[])
     }
     OpenSSL_add_all_algorithms();
     snprintf(pkeyname,sizeof(pkeyname),"%s.pem", argv[3]);
-    EVP_PKEY_assign_RSA(&pkey, rsa);
+    pkey = EVP_PKEY_new();
+    EVP_PKEY_assign_RSA(pkey, rsa);
     keyfile = fopen(pkeyname, "w");
     if (keyfile == NULL) {
         fprintf(stderr, "Unable to create public key file\n");
         exit(-1);
     }
-    ret = PEM_write_PUBKEY(keyfile, &pkey);
+    ret = PEM_write_PUBKEY(keyfile, pkey);
     if (ret == 0) {
         fprintf(stderr, "Unable to write public key file\n");
         exit(-1);
     }
     fclose(keyfile);
     RSA_free(rsa);
+    EVP_PKEY_free(pkey);
     exit(0);
 }