Control: tags -1 + patch

The attached patch moves the code over to using the openssl 1.1 api. It
is entirely renames / accessors.

Chris.

diff --git a/mixmaster-3.0.0/Src/crypto.c b/mixmaster-3.0.0/Src/crypto.c
index 1025b6d..e860a67 100644
--- a/mixmaster-3.0.0/Src/crypto.c
+++ b/mixmaster-3.0.0/Src/crypto.c
@@ -82,6 +82,7 @@ static int read_seckey(BUFFER *buf, SECKEY *key, const byte id[])
   int len, plen;
   byte *ptr;
   int err = 0;
+  BIGNUM *key_n, *key_e, *key_d, *key_p, *key_q, *key_dmp1, *key_dmq1, *key_iqmp;
 
   md = buf_new();
   bits = buf->data[0] + 256 * buf->data[1];
@@ -94,32 +95,36 @@ static int read_seckey(BUFFER *buf, SECKEY *key, const byte id[])
 
   ptr = buf->data + 2;
 
-  key->n = BN_bin2bn(ptr, len, NULL);
+  key_n = BN_bin2bn(ptr, len, NULL);
   buf_append(md, ptr, len);
   ptr += len;
 
-  key->e = BN_bin2bn(ptr, len, NULL);
+  key_e = BN_bin2bn(ptr, len, NULL);
   buf_append(md, ptr, len);
   ptr += len;
 
-  key->d = BN_bin2bn(ptr, len, NULL);
+  key_d = BN_bin2bn(ptr, len, NULL);
   ptr += len;
 
-  key->p = BN_bin2bn(ptr, plen, NULL);
+  key_p = BN_bin2bn(ptr, plen, NULL);
   ptr += plen;
 
-  key->q = BN_bin2bn(ptr, plen, NULL);
+  key_q = BN_bin2bn(ptr, plen, NULL);
   ptr += plen;
 
-  key->dmp1 = BN_bin2bn(ptr, plen, NULL);
+  key_dmp1 = BN_bin2bn(ptr, plen, NULL);
   ptr += plen;
 
-  key->dmq1 = BN_bin2bn(ptr, plen, NULL);
+  key_dmq1 = BN_bin2bn(ptr, plen, NULL);
   ptr += plen;
 
-  key->iqmp = BN_bin2bn(ptr, plen, NULL);
+  key_iqmp = BN_bin2bn(ptr, plen, NULL);
   ptr += plen;
 
+  RSA_set0_key(key, key_n, key_e, key_d);
+  RSA_set0_factors(key, key_p, key_q);
+  RSA_set0_crt_params(key, key_dmp1, key_dmq1, key_iqmp);
+
   digest_md5(md, md);
   if (id)
     err = (memcmp(id, md->data, 16) == 0) ? 0 : -1;
@@ -134,6 +139,7 @@ static int read_pubkey(BUFFER *buf, PUBKEY *key, const byte id[])
   int len;
   byte *ptr;
   int err = 0;
+  BIGNUM *key_n, *key_e;
 
   md = buf_new();
   bits = buf->data[0] + 256 * buf->data[1];
@@ -144,13 +150,14 @@ static int read_pubkey(BUFFER *buf, PUBKEY *key, const byte id[])
 
   ptr = buf->data + 2;
 
-  key->n = BN_bin2bn(ptr, len, NULL);
+  key_n = BN_bin2bn(ptr, len, NULL);
   buf_append(md, ptr, len);
   ptr += len;
 
-  key->e = BN_bin2bn(ptr, len, NULL);
+  key_e = BN_bin2bn(ptr, len, NULL);
   buf_append(md, ptr, len);
   ptr += len;
+  RSA_set0_key(key, key_n, key_e, NULL);
 
   digest_md5(md, md);
   if (id)
@@ -164,17 +171,22 @@ static int write_seckey(BUFFER *sk, SECKEY *key, byte keyid[])
   byte l[128];
   int n;
   BUFFER *b, *temp;
+  const BIGNUM *key_n, *key_e, *key_d, *key_p, *key_q, *key_dmp1, *key_dmq1, *key_iqmp;
+
+  RSA_get0_key(key, &key_n, &key_e, &key_d);
+  RSA_get0_factors(key, &key_p, &key_q);
+  RSA_get0_crt_params(key, &key_dmp1, &key_dmq1, &key_iqmp);
 
   b = buf_new();
   temp = buf_new();
 
-  n = BN_bn2bin(key->n, l);
+  n = BN_bn2bin(key_n, l);
   assert(n <= 128);
   if (n < 128)
     buf_appendzero(b, 128 - n);
   buf_append(b, l, n);
 
-  n = BN_bn2bin(key->e, l);
+  n = BN_bn2bin(key_e, l);
   assert(n <= 128);
   if (n < 128)
     buf_appendzero(b, 128 - n);
@@ -187,37 +199,37 @@ static int write_seckey(BUFFER *sk, SECKEY *key, byte keyid[])
   buf_appendc(sk, 4);
   buf_cat(sk, b);
 
-  n = BN_bn2bin(key->d, l);
+  n = BN_bn2bin(key_d, l);
   assert(n <= 128);
   if (n < 128)
     buf_appendzero(sk, 128 - n);
   buf_append(sk, l, n);
 
-  n = BN_bn2bin(key->p, l);
+  n = BN_bn2bin(key_p, l);
   assert(n <= 64);
   if (n < 64)
     buf_appendzero(sk, 64 - n);
   buf_append(sk, l, n);
 
-  n = BN_bn2bin(key->q, l);
+  n = BN_bn2bin(key_q, l);
   assert(n <= 64);
   if (n < 64)
     buf_appendzero(sk, 64 - n);
   buf_append(sk, l, n);
 
-  n = BN_bn2bin(key->dmp1, l);
+  n = BN_bn2bin(key_dmp1, l);
   assert(n <= 64);
   if (n < 64)
     buf_appendzero(sk, 64 - n);
   buf_append(sk, l, n);
 
-  n = BN_bn2bin(key->dmq1, l);
+  n = BN_bn2bin(key_dmq1, l);
   assert(n <= 64);
   if (n < 64)
     buf_appendzero(sk, 64 - n);
   buf_append(sk, l, n);
 
-  n = BN_bn2bin(key->iqmp, l);
+  n = BN_bn2bin(key_iqmp, l);
   assert(n <= 64);
   if (n < 64)
     buf_appendzero(sk, 64 - n);
@@ -234,15 +246,17 @@ static int write_pubkey(BUFFER *pk, PUBKEY *key, byte keyid[])
 {
   byte l[128];
   int n;
+  const BIGNUM *key_n, *key_e, *key_d;
 
   buf_appendc(pk, 0);
   buf_appendc(pk, 4);
-  n = BN_bn2bin(key->n, l);
+  RSA_get0_key(key, &key_n, &key_e, &key_d);
+  n = BN_bn2bin(key_n, l);
   assert(n <= 128);
   if (n < 128)
     buf_appendzero(pk, 128 - n);
   buf_append(pk, l, n);
-  n = BN_bn2bin(key->e, l);
+  n = BN_bn2bin(key_e, l);
   assert(n <= 128);
   if (n < 128)
     buf_appendzero(pk, 128 - n);
@@ -383,23 +397,23 @@ int pk_encrypt(BUFFER *in, BUFFER *keybuf)
 }
 int buf_crypt(BUFFER *buf, BUFFER *key, BUFFER *iv, int enc)
 {
-  des_key_schedule ks1;
-  des_key_schedule ks2;
-  des_key_schedule ks3;
-  des_cblock i;
+  DES_key_schedule *ks1;
+  DES_key_schedule *ks2;
+  DES_key_schedule *ks3;
+  DES_cblock i;
 
   assert(enc == ENCRYPT || enc == DECRYPT);
   assert((key->length == 16 || key->length == 24) && iv->length == 8);
   assert(buf->length % 8 == 0);
 
   memcpy(i, iv->data, 8);	/* leave iv buffer unchanged */
-  des_set_key((const_des_cblock *) key->data, ks1);
-  des_set_key((const_des_cblock *) (key->data + 8), ks2);
+  DES_set_key((const_DES_cblock *) key->data, ks1);
+  DES_set_key((const_DES_cblock *) (key->data + 8), ks2);
   if (key->length == 16)
-    des_set_key((const_des_cblock *) key->data, ks3);
+    DES_set_key((const_DES_cblock *) key->data, ks3);
   else
-    des_set_key((const_des_cblock *) (key->data + 16), ks3);
-  des_ede3_cbc_encrypt(buf->data, buf->data, buf->length, ks1, ks2, ks3,
+    DES_set_key((const_DES_cblock *) (key->data + 16), ks3);
+  DES_ede3_cbc_encrypt(buf->data, buf->data, buf->length, ks1, ks2, ks3,
 		       &i, enc);
   return (0);
 }
@@ -407,18 +421,18 @@ int buf_crypt(BUFFER *buf, BUFFER *key, BUFFER *iv, int enc)
 int buf_3descrypt(BUFFER *buf, BUFFER *key, BUFFER *iv, int enc)
 {
   int n = 0;
-  des_key_schedule ks1;
-  des_key_schedule ks2;
-  des_key_schedule ks3;
+  DES_key_schedule *ks1;
+  DES_key_schedule *ks2;
+  DES_key_schedule *ks3;
 
   assert(enc == ENCRYPT || enc == DECRYPT);
   assert(key->length == 24 && iv->length == 8);
 
-  des_set_key((const_des_cblock *) key->data, ks1);
-  des_set_key((const_des_cblock *) (key->data + 8), ks2);
-  des_set_key((const_des_cblock *) (key->data + 16), ks3);
-  des_ede3_cfb64_encrypt(buf->data, buf->data, buf->length, ks1, ks2, ks3,
-			(des_cblock *) iv->data, &n, enc);
+  DES_set_key((const_DES_cblock *) key->data, ks1);
+  DES_set_key((const_DES_cblock *) (key->data + 8), ks2);
+  DES_set_key((const_DES_cblock *) (key->data + 16), ks3);
+  DES_ede3_cfb64_encrypt(buf->data, buf->data, buf->length, ks1, ks2, ks3,
+			(DES_cblock *) iv->data, &n, enc);
   return (0);
 }
 
diff --git a/mixmaster-3.0.0/Src/pgpcreat.c b/mixmaster-3.0.0/Src/pgpcreat.c
index 767a1d4..cf003f5 100644
--- a/mixmaster-3.0.0/Src/pgpcreat.c
+++ b/mixmaster-3.0.0/Src/pgpcreat.c
@@ -158,11 +158,11 @@ static int pgp_ideaencrypt(BUFFER *in, BUFFER *out, BUFFER *key, int mdc)
 
 static int pgp_3desencrypt(BUFFER *in, BUFFER *out, BUFFER *key, int mdc)
 {
-  des_cblock iv;
+  DES_cblock iv;
   int i, n = 0;
-  des_key_schedule ks1;
-  des_key_schedule ks2;
-  des_key_schedule ks3;
+  DES_key_schedule *ks1;
+  DES_key_schedule *ks2;
+  DES_key_schedule *ks3;
   SHA_CTX c;
 
   assert(key->length == 25);
@@ -170,9 +170,9 @@ static int pgp_3desencrypt(BUFFER *in, BUFFER *out, BUFFER *key, int mdc)
   for (i = 0; i < 8; i++)
     iv[i] = 0;
 
-  des_set_key((const_des_cblock *) (key->data + 1), ks1);
-  des_set_key((const_des_cblock *) (key->data + 9), ks2);
-  des_set_key((const_des_cblock *) (key->data+ 17), ks3);
+  DES_set_key((const_DES_cblock *) (key->data + 1), ks1);
+  DES_set_key((const_DES_cblock *) (key->data + 9), ks2);
+  DES_set_key((const_DES_cblock *) (key->data+ 17), ks3);
 
   if (mdc) {
     mdc = 1;
@@ -186,21 +186,21 @@ static int pgp_3desencrypt(BUFFER *in, BUFFER *out, BUFFER *key, int mdc)
     SHA1_Update(&c, in->data, in->length);
   }
   n = 0;
-  des_ede3_cfb64_encrypt(out->data + mdc, out->data + mdc, 10, ks1, ks2, ks3, &iv, &n,
+  DES_ede3_cfb64_encrypt(out->data + mdc, out->data + mdc, 10, ks1, ks2, ks3, &iv, &n,
 			 ENCRYPT);
   if (!mdc) {
     iv[6] = iv[0], iv[7] = iv[1];
     memcpy(iv, out->data + 2, 6);
     n = 0;
   }
-  des_ede3_cfb64_encrypt(in->data, out->data + 10 + mdc, in->length, ks1, ks2, ks3,
+  DES_ede3_cfb64_encrypt(in->data, out->data + 10 + mdc, in->length, ks1, ks2, ks3,
 			 &iv, &n, ENCRYPT);
   if (mdc) {
     SHA1_Update(&c, "\xD3\x14", 2); /* 0xD3 = 0xC0 | PGP_MDC */
-    des_ede3_cfb64_encrypt("\xD3\x14", out->data + 11 + in->length, 2, ks1, ks2, ks3,
+    DES_ede3_cfb64_encrypt("\xD3\x14", out->data + 11 + in->length, 2, ks1, ks2, ks3,
 		       &iv, &n, ENCRYPT);
     SHA1_Final(out->data + 13 + in->length, &c);
-    des_ede3_cfb64_encrypt(out->data + 13 + in->length, out->data + 13 + in->length, 20, ks1, ks2, ks3,
+    DES_ede3_cfb64_encrypt(out->data + 13 + in->length, out->data + 13 + in->length, 20, ks1, ks2, ks3,
 		       &iv, &n, ENCRYPT);
   }
   return (0);
diff --git a/mixmaster-3.0.0/Src/pgpdata.c b/mixmaster-3.0.0/Src/pgpdata.c
index 6c47c0a..1fb15ba 100644
--- a/mixmaster-3.0.0/Src/pgpdata.c
+++ b/mixmaster-3.0.0/Src/pgpdata.c
@@ -131,6 +131,7 @@ int pgp_rsa(BUFFER *in, BUFFER *k, int mode)
   BUFFER *mpi, *out;
   int err = -1;
   RSA *key;
+  BIGNUM *key_n, *key_e, *key_d, *key_q, *key_p, *key_iqmp, *key_dmp1, *key_dmq1;
 
   assert(mode == PK_ENCRYPT || mode == PK_VERIFY || mode == PK_DECRYPT
 	 || mode == PK_SIGN);
@@ -139,28 +140,31 @@ int pgp_rsa(BUFFER *in, BUFFER *k, int mode)
   mpi = buf_new();
 
   mpi_get(k, mpi);
-  key->n = BN_bin2bn(mpi->data, mpi->length, NULL);
+  key_n = BN_bin2bn(mpi->data, mpi->length, NULL);
 
   if (mpi_get(k, mpi) < 0)
     goto end;
-  key->e = BN_bin2bn(mpi->data, mpi->length, NULL);
+  key_e = BN_bin2bn(mpi->data, mpi->length, NULL);
 
+  RSA_set0_key(key, key_n, key_e, NULL);
   if (mode == PK_DECRYPT || mode == PK_SIGN) {
     if (mpi_get(k, mpi) < 0)
       goto end;
-    key->d = BN_bin2bn(mpi->data, mpi->length, NULL);
-
+    key_d = BN_bin2bn(mpi->data, mpi->length, NULL);
+    RSA_set0_key(key, key_n, key_e, key_d);
 #if 1
     /* compute auxiluary parameters */
     mpi_get(k, mpi);		/* PGP'p is SSLeay's q */
-    key->q = BN_bin2bn(mpi->data, mpi->length, NULL);
+    key_q = BN_bin2bn(mpi->data, mpi->length, NULL);
 
     mpi_get(k, mpi);
-    key->p = BN_bin2bn(mpi->data, mpi->length, NULL);
+    key_p = BN_bin2bn(mpi->data, mpi->length, NULL);
+
+    RSA_set0_factors(key, key_p, key_q);
 
     if (mpi_get(k, mpi) < 0)
       goto end;
-    key->iqmp = BN_bin2bn(mpi->data, mpi->length, NULL);
+    key_iqmp = BN_bin2bn(mpi->data, mpi->length, NULL);
 
     {
       BIGNUM *i;
@@ -168,14 +172,16 @@ int pgp_rsa(BUFFER *in, BUFFER *k, int mode)
 
       ctx = BN_CTX_new();
       i = BN_new();
-      key->dmp1 = BN_new();
-      key->dmq1 = BN_new();
+      key_dmp1 = BN_new();
+      key_dmq1 = BN_new();
+
+      BN_sub(i, key_p, BN_value_one());
+      BN_mod(key_dmp1, key_d, i, ctx);
 
-      BN_sub(i, key->p, BN_value_one());
-      BN_mod(key->dmp1, key->d, i, ctx);
+      BN_sub(i, key_q, BN_value_one());
+      BN_mod(key_dmq1, key_d, i, ctx);
 
-      BN_sub(i, key->q, BN_value_one());
-      BN_mod(key->dmq1, key->d, i, ctx);
+      RSA_set0_crt_params(key, key_dmp1, key_dmq1, key_iqmp);
 
       BN_free(i);
     }
@@ -1037,6 +1043,7 @@ int pgp_rsakeygen(int bits, BUFFER *userid, BUFFER *pass, char *pubring,
   long now;
   int skalgo = 0;
   int err = 0;
+  const BIGNUM *key_n, *key_e, *key_d, *key_p, *key_q, *key_dmp1, *key_dmq1, *key_iqmp;
 
   pkey = buf_new();
   skey = buf_new();
@@ -1061,8 +1068,10 @@ int pgp_rsakeygen(int bits, BUFFER *userid, BUFFER *pass, char *pubring,
   buf_appendi(skey, 0);
   /* buf_appendi(skey, KEYLIFETIME/(24*60*60)); */
   buf_appendc(skey, PGP_ES_RSA);
-  mpi_bnput(skey, k->n);
-  mpi_bnput(skey, k->e);
+
+  RSA_get0_key(k, &key_n, &key_e, &key_d);
+  mpi_bnput(skey, key_n);
+  mpi_bnput(skey, key_e);
 
 #ifdef USE_IDEA
   if (pass != NULL && pass->length > 0 && remail != 2) {
@@ -1076,16 +1085,18 @@ int pgp_rsakeygen(int bits, BUFFER *userid, BUFFER *pass, char *pubring,
 #endif /* USE_IDEA */
     buf_appendc(skey, 0);
 
-  mpi_bnputenc(skey, k->d, skalgo, dk, iv);
-  mpi_bnputenc(skey, k->q, skalgo, dk, iv);
-  mpi_bnputenc(skey, k->p, skalgo, dk, iv);
-  mpi_bnputenc(skey, k->iqmp, skalgo, dk, iv);
+  RSA_get0_factors(k, &key_p, &key_q);
+  RSA_get0_crt_params(k, &key_dmp1, &key_dmq1, &key_iqmp);
+  mpi_bnputenc(skey, key_d, skalgo, dk, iv);
+  mpi_bnputenc(skey, key_q, skalgo, dk, iv);
+  mpi_bnputenc(skey, key_p, skalgo, dk, iv);
+  mpi_bnputenc(skey, key_iqmp, skalgo, dk, iv);
 
   buf_clear(p);
-  mpi_bnput(p, k->d);
-  mpi_bnput(p, k->q);
-  mpi_bnput(p, k->p);
-  mpi_bnput(p, k->iqmp);
+  mpi_bnput(p, key_d);
+  mpi_bnput(p, key_q);
+  mpi_bnput(p, key_p);
+  mpi_bnput(p, key_iqmp);
   buf_appendi(skey, pgp_csum(p, 0));
 
   pgp_packet(skey, PGP_SECKEY);
@@ -1133,6 +1144,7 @@ end:
 static void *params(int dsa, int bits)
 {
   DSA *k = NULL;
+  BIGNUM *key_p, *key_q, *key_g;
   DH *d = NULL;
   FILE *f;
   BUFFER *p, *n;
@@ -1166,22 +1178,24 @@ static void *params(int dsa, int bits)
 		k = DSA_new();
 		l = buf_geti(p);
 		buf_get(p, n, l);
-		k->p = BN_bin2bn(n->data, n->length, NULL);
+		key_p = BN_bin2bn(n->data, n->length, NULL);
 		l = buf_geti(p);
 		buf_get(p, n, l);
-		k->q = BN_bin2bn(n->data, n->length, NULL);
+		key_q = BN_bin2bn(n->data, n->length, NULL);
 		l = buf_geti(p);
 		buf_get(p, n, l);
-		k->g = BN_bin2bn(n->data, n->length, NULL);
+		key_g = BN_bin2bn(n->data, n->length, NULL);
 	      } else {
 		d = DH_new();
 		l = buf_geti(p);
 		buf_get(p, n, l);
-		d->p = BN_bin2bn(n->data, n->length, NULL);
+		key_p = BN_bin2bn(n->data, n->length, NULL);
 		l = buf_geti(p);
 		buf_get(p, n, l);
-		d->g = BN_bin2bn(n->data, n->length, NULL);
+		key_g = BN_bin2bn(n->data, n->length, NULL);
+		key_q = NULL;
 	      }
+	      DSA_set0_pqg(k, key_p, key_q, key_g);
 	      break;
 	    }
 	    buf_appends(p, line);
@@ -1200,13 +1214,14 @@ static void *params(int dsa, int bits)
       errlog(NOTICE, "Generating DSA parameters.\n");
       k = DSA_generate_parameters(bits, NULL, 0, NULL, NULL, NULL, NULL);
       p = buf_new();
-      l = BN_bn2bin(k->p, b);
+      DSA_get0_pqg(k, &key_p, &key_q, &key_g);
+      l = BN_bn2bin(key_p, b);
       buf_appendi(p, l);
       buf_append(p, b, l);
-      l = BN_bn2bin(k->q, b);
+      l = BN_bn2bin(key_q, b);
       buf_appendi(p, l);
       buf_append(p, b, l);
-      l = BN_bn2bin(k->g, b);
+      l = BN_bn2bin(key_g, b);
       buf_appendi(p, l);
       buf_append(p, b, l);
       encode(p, 64);
@@ -1225,11 +1240,12 @@ static void *params(int dsa, int bits)
     if (d == NULL) {
       errlog(NOTICE, "Generating DH parameters. (This may take a long time!)\n");
       d = DH_generate_parameters(bits, DH_GENERATOR_5, NULL, NULL);
+      DSA_get0_pqg(d, &key_p, &key_q, &key_g);
       p = buf_new();
-      l = BN_bn2bin(d->p, b);
+      l = BN_bn2bin(key_p, b);
       buf_appendi(p, l);
       buf_append(p, b, l);
-      l = BN_bn2bin(d->g, b);
+      l = BN_bn2bin(key_g, b);
       buf_appendi(p, l);
       buf_append(p, b, l);
       encode(p, 64);
@@ -1258,6 +1274,7 @@ int pgp_dhkeygen(int bits, BUFFER *userid, BUFFER *pass, char *pubring,
   BUFFER *dk, *sig, *iv, *p;
   long now;
   int err = 0;
+  const BIGNUM *key_p, *key_q, *key_g, *pub_key, *priv_key;
 
   pkey = buf_new();
   skey = buf_new();
@@ -1289,12 +1306,13 @@ int pgp_dhkeygen(int bits, BUFFER *userid, BUFFER *pass, char *pubring,
   buf_setc(skey, 4);
   buf_appendl(skey, now);
   buf_appendc(skey, PGP_S_DSA);
-  mpi_bnput(skey, s->p);
-  mpi_bnput(skey, s->q);
-  mpi_bnput(skey, s->g);
-  mpi_bnput(skey, s->pub_key);
-
-  mpi_bnput(secret, s->priv_key);
+  DSA_get0_pqg(s, &key_p, &key_q, &key_g);
+  mpi_bnput(skey, key_p);
+  mpi_bnput(skey, key_q);
+  mpi_bnput(skey, key_g);
+  DSA_get0_key(s, &pub_key, &priv_key);
+  mpi_bnput(skey, pub_key);
+  mpi_bnput(secret, priv_key);
   buf_appendi(secret, pgp_csum(secret, 0));
   makeski(secret, pass, remail);
   buf_cat(skey, secret);
@@ -1304,12 +1322,16 @@ int pgp_dhkeygen(int bits, BUFFER *userid, BUFFER *pass, char *pubring,
   buf_setc(subkey, 4);
   buf_appendl(subkey, now);
   buf_appendc(subkey, PGP_E_ELG);
-  mpi_bnput(subkey, e->p);
-  mpi_bnput(subkey, e->g);
-  mpi_bnput(subkey, e->pub_key);
+
+  DH_get0_pqg(e, &key_p, &key_q, &key_g);
+  mpi_bnput(skey, key_p);
+  mpi_bnput(subkey, key_p);
+  mpi_bnput(subkey, key_g);
+  DH_get0_key(s, &pub_key, &priv_key);
+  mpi_bnput(subkey, pub_key);
 
   buf_clear(secret);
-  mpi_bnput(secret, e->priv_key);
+  mpi_bnput(secret, priv_key);
   buf_appendi(secret, pgp_csum(secret, 0));
   makeski(secret, pass, remail);
   buf_cat(subkey, secret);
@@ -1360,29 +1382,33 @@ int pgp_dsasign(BUFFER *data, BUFFER *key, BUFFER *out)
   BUFFER *mpi, *b;
   DSA *d;
   DSA_SIG *sig = NULL;
+  BIGNUM *key_p, *key_q, *key_g, *pub_key, *priv_key, *sig_s, *sig_r;
 
   d = DSA_new();
   b = buf_new();
   mpi = buf_new();
   mpi_get(key, mpi);
-  d->p = BN_bin2bn(mpi->data, mpi->length, NULL);
+  key_p = BN_bin2bn(mpi->data, mpi->length, NULL);
   mpi_get(key, mpi);
-  d->q = BN_bin2bn(mpi->data, mpi->length, NULL);
+  key_q = BN_bin2bn(mpi->data, mpi->length, NULL);
   mpi_get(key, mpi);
-  d->g = BN_bin2bn(mpi->data, mpi->length, NULL);
+  key_g = BN_bin2bn(mpi->data, mpi->length, NULL);
+  DSA_set0_pqg(d, key_p, key_q, key_g);
   mpi_get(key, mpi);
-  d->pub_key = BN_bin2bn(mpi->data, mpi->length, NULL);
+  pub_key = BN_bin2bn(mpi->data, mpi->length, NULL);
   if (mpi_get(key, mpi) == -1) {
     goto end;
   }
-  d->priv_key = BN_bin2bn(mpi->data, mpi->length, NULL);
+  priv_key = BN_bin2bn(mpi->data, mpi->length, NULL);
+  DSA_set0_key(d, pub_key, priv_key);
 
   sig = DSA_do_sign(data->data, data->length, d);
   if (sig) {
-    buf_prepare(b, BN_num_bytes(sig->r));
-    b->length = BN_bn2bin(sig->r, b->data);
+    DSA_SIG_get0(sig, &sig_r, &sig_s);
+    buf_prepare(b, BN_num_bytes(sig_r));
+    b->length = BN_bn2bin(sig_r, b->data);
     mpi_put(out, b);
-    b->length = BN_bn2bin(sig->s, b->data);
+    b->length = BN_bn2bin(sig_s, b->data);
     mpi_put(out, b);
   }
  end:
diff --git a/mixmaster-3.0.0/Src/pgpget.c b/mixmaster-3.0.0/Src/pgpget.c
index 390e380..02816df 100644
--- a/mixmaster-3.0.0/Src/pgpget.c
+++ b/mixmaster-3.0.0/Src/pgpget.c
@@ -400,12 +400,12 @@ end:
 static int pgp_3desdecrypt(BUFFER *in, BUFFER *out, BUFFER *key, int mdc)
 {
   int err = 0;
-  des_cblock iv;
+  DES_cblock iv;
   byte hdr[10];
   int i, n;
-  des_key_schedule ks1;
-  des_key_schedule ks2;
-  des_key_schedule ks3;
+  DES_key_schedule *ks1;
+  DES_key_schedule *ks2;
+  DES_key_schedule *ks3;
   SHA_CTX c;
   char md[20]; /* we could make hdr 20 bytes long and reuse it for md */
 
@@ -423,12 +423,12 @@ static int pgp_3desdecrypt(BUFFER *in, BUFFER *out, BUFFER *key, int mdc)
   for (i = 0; i < 8; i++)
     iv[i] = 0;
 
-  des_set_key((const_des_cblock *) key->data, ks1);
-  des_set_key((const_des_cblock *) (key->data + 8), ks2);
-  des_set_key((const_des_cblock *) (key->data+ 16), ks3);
+  DES_set_key((const_DES_cblock *) key->data, ks1);
+  DES_set_key((const_DES_cblock *) (key->data + 8), ks2);
+  DES_set_key((const_DES_cblock *) (key->data+ 16), ks3);
 
   n = 0;
-  des_ede3_cfb64_encrypt(in->data + mdc, hdr, 10, ks1, ks2, ks3, &iv, &n, DECRYPT);
+  DES_ede3_cfb64_encrypt(in->data + mdc, hdr, 10, ks1, ks2, ks3, &iv, &n, DECRYPT);
   if (n != 2 || hdr[8] != hdr[6] || hdr[9] != hdr[7]) {
     err = -1;
     goto end;
@@ -441,7 +441,7 @@ static int pgp_3desdecrypt(BUFFER *in, BUFFER *out, BUFFER *key, int mdc)
     memcpy(iv, in->data + 2, 6);
     n = 0;
   }
-  des_ede3_cfb64_encrypt(in->data + 10 + mdc, out->data, in->length - 10 + mdc, ks1,
+  DES_ede3_cfb64_encrypt(in->data + 10 + mdc, out->data, in->length - 10 + mdc, ks1,
 			 ks2, ks3, &iv, &n, DECRYPT);
   if (mdc) {
     if (out->length > 22) {
diff --git a/mixmaster-3.0.0/debian/build-postinst b/mixmaster-3.0.0/debian/build-postinst
old mode 100644
new mode 100755
diff --git a/mixmaster-3.0.0/debian/control b/mixmaster-3.0.0/debian/control
index e8a46bd..d3c0966 100644
--- a/mixmaster-3.0.0/debian/control
+++ b/mixmaster-3.0.0/debian/control
@@ -3,7 +3,7 @@ Section: mail
 Priority: optional
 Maintainer: Colin Tuckley <col...@debian.org>
 Homepage: http://mixmaster.sourceforge.net/
-Build-Depends: debhelper (>= 7), libncurses5-dev, libpcre3-dev, libssl1.0-dev, zlib1g-dev, bison, po-debconf, dpkg-dev (>= 1.16.1~)
+Build-Depends: debhelper (>= 7), libncurses5-dev, libpcre3-dev, libssl-dev, zlib1g-dev, bison, po-debconf, dpkg-dev (>= 1.16.1~)
 Standards-Version: 3.9.7
 
 Package: mixmaster

Reply via email to