diff --git a/src/post_modules/Nettle/cipher.cmod b/src/post_modules/Nettle/cipher.cmod index 7e099d13689d7eeb01d1f873f41fcf049b1333d9..b908825032f24ee9a14758c35f5fcb38a85ceeb3 100644 --- a/src/post_modules/Nettle/cipher.cmod +++ b/src/post_modules/Nettle/cipher.cmod @@ -571,6 +571,12 @@ pike_des_set_key(void *c, if (!des_set_key(ctx, (const uint8_t *)key)) { +#ifndef DES_WEAK_KEY + /* Nettle 2.1 and later. */ + if (!force) + Pike_error("DES_INFO: Key is weak.\n"); +#else + /* Nettle 2.0 and earlier. */ switch (ctx->status) { case DES_WEAK_KEY: @@ -588,6 +594,7 @@ pike_des_set_key(void *c, default: Pike_error("DES_INFO: Unexpected error, please send a bug report.\n"); } +#endif } } @@ -746,6 +753,13 @@ pike_des3_set_key(void *c, * individual keys by ourself. */ for (i = 0; i<3; i++, key += DES_KEY_SIZE) if (!des_set_key(&ctx->des[i], (const uint8_t *)key)) + { +#ifndef DES_WEAK_KEY + /* Nettle 2.1 and later. */ + if (!force) + Pike_error("DES3_INFO: Key is weak.\n"); +#else + /* Nettle 2.0 and earlier. */ switch (ctx->des[i].status) { case DES_WEAK_KEY: @@ -762,6 +776,8 @@ pike_des3_set_key(void *c, Pike_error("DES3_INFO: Key has bad parity.\n"); default: Pike_error("DES3_INFO: Unexpected error, please send a bug report.\n"); + } +#endif } } #define pike_des3_set_encrypt_key pike_des3_set_key