[openssl-dev] [openssl.org #4247] 1.1.0-pre2 on Sparc: incomplete adjustments for EVP_CIPHER_CTX opaqueness

Rainer Jung via RT rt at openssl.org
Sat Jan 16 03:14:17 UTC 2016


Building 1.1.0-pre2 on Solaris Sparc I get compilation errors, e.g.

e_des.c: In function 'des_init_key':
e_des.c:250:23: error: dereferencing pointer to incomplete type
          int mode = ctx->cipher->flags & EVP_CIPH_MODE;


The following patch fixes them:

Index: crypto/evp/e_camellia.c
--- crypto/evp/e_camellia.c     2016-01-14 10:51:32.000000000 +0100
+++ crypto/evp/e_camellia.c     2016-01-16 04:01:44.443269000 +0100
@@ -119,10 +119,10 @@
                              const unsigned char *iv, int enc)
  {
      int ret, mode, bits;
-    EVP_CAMELLIA_KEY *dat = (EVP_CAMELLIA_KEY *) ctx->cipher_data;
+    EVP_CAMELLIA_KEY *dat = (EVP_CAMELLIA_KEY *) 
EVP_CIPHER_CTX_cipher_data(ctx);

-    mode = ctx->cipher->flags & EVP_CIPH_MODE;
-    bits = ctx->key_len * 8;
+    mode = EVP_CIPHER_CTX_mode(ctx);
+    bits = EVP_CIPHER_CTX_key_length(ctx) * 8;

      cmll_t4_set_key(key, bits, &dat->ks);

Index: crypto/evp/e_des.c
--- crypto/evp/e_des.c  2016-01-14 10:51:32.000000000 +0100
+++ crypto/evp/e_des.c  2016-01-16 03:56:50.834081000 +0100
@@ -247,7 +247,7 @@
      dat->stream.cbc = NULL;
  # if defined(SPARC_DES_CAPABLE)
      if (SPARC_DES_CAPABLE) {
-        int mode = ctx->cipher->flags & EVP_CIPH_MODE;
+        int mode = EVP_CIPHER_CTX_mode(ctx);

          if (mode == EVP_CIPH_CBC_MODE) {
              des_t4_key_expand(key, &dat->ks.ks);
Index: crypto/evp/e_des3.c
--- crypto/evp/e_des3.c 2016-01-14 10:51:32.000000000 +0100
+++ crypto/evp/e_des3.c 2016-01-16 03:57:51.607381000 +0100
@@ -270,7 +270,7 @@
      dat->stream.cbc = NULL;
  # if defined(SPARC_DES_CAPABLE)
      if (SPARC_DES_CAPABLE) {
-        int mode = ctx->cipher->flags & EVP_CIPH_MODE;
+        int mode = EVP_CIPHER_CTX_mode(ctx);

          if (mode == EVP_CIPH_CBC_MODE) {
              des_t4_key_expand(&deskey[0], &dat->ks1);
@@ -297,7 +297,7 @@
      dat->stream.cbc = NULL;
  # if defined(SPARC_DES_CAPABLE)
      if (SPARC_DES_CAPABLE) {
-        int mode = ctx->cipher->flags & EVP_CIPH_MODE;
+        int mode = EVP_CIPHER_CTX_mode(ctx);

          if (mode == EVP_CIPH_CBC_MODE) {
              des_t4_key_expand(&deskey[0], &dat->ks1);


Thanks and regards,

Rainer




More information about the openssl-dev mailing list