aboutsummaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorGeoff Thorpe <geoff@openssl.org>2003-11-05 19:30:29 +0000
committerGeoff Thorpe <geoff@openssl.org>2003-11-05 19:30:29 +0000
commit0ef85c7f4512570a02c4ff5d95a275ecf225702a (patch)
tree71f538a7a6df0a28d60d106348d7837e6ad8fa03 /crypto
parent078dd1a0f94394632614123af3155866749ff79c (diff)
downloadopenssl-0ef85c7f4512570a02c4ff5d95a275ecf225702a.tar.gz
This is a revert of my previous commit to "improve" the declaration of
constant BIGNUMs. It turns out that this trips up different but equally useful compiler warnings to -Wcast-qual, and so wasn't worth the ugliness it created. (Thanks to Ulf for the forehead-slap.)
Diffstat (limited to 'crypto')
-rw-r--r--crypto/bn/bn.h21
-rw-r--r--crypto/bn/bn_lib.c8
-rw-r--r--crypto/bn/bn_nist.c31
3 files changed, 15 insertions, 45 deletions
diff --git a/crypto/bn/bn.h b/crypto/bn/bn.h
index 5c648ea011..a46fe842cf 100644
--- a/crypto/bn/bn.h
+++ b/crypto/bn/bn.h
@@ -252,27 +252,6 @@ typedef struct bignum_st
int flags;
} BIGNUM;
-/* Declaring static BIGNUMs as constant is tricky in C; the 'd' data can't be
- * pre-declared const without having to cast away the const when declaring the
- * BIGNUM. We use this alternative type for declaring const BIGNUMs. See
- * bn_nist.c for examples. */
-typedef struct bignum_c_st
- {
- const BN_ULONG *d;
- int top;
- int dmax;
- int neg;
- int flags;
- } BIGNUM_C;
-#ifdef BN_DEBUG
-/* Use a function to do this so that we can type-check the pointer we're
- * casting */
-const BIGNUM *BIGNUM_CONST(const BIGNUM_C *bn);
-#else
-/* Use a macro instead */
-#define BIGNUM_CONST(bn) ((const BIGNUM *)bn)
-#endif
-
/* Used for temp variables (declaration hidden in bn_lcl.h) */
typedef struct bignum_ctx BN_CTX;
diff --git a/crypto/bn/bn_lib.c b/crypto/bn/bn_lib.c
index 85b72e0eeb..1f45b09d08 100644
--- a/crypto/bn/bn_lib.c
+++ b/crypto/bn/bn_lib.c
@@ -887,11 +887,3 @@ int bn_cmp_part_words(const BN_ULONG *a, const BN_ULONG *b,
}
return bn_cmp_words(a,b,cl);
}
-
-/* See the comments surrounding BIGNUM_C in bn.h */
-#ifdef BN_DEBUG
-const BIGNUM *BIGNUM_CONST(const BIGNUM_C *bn)
- {
- return (const BIGNUM *)bn;
- }
-#endif
diff --git a/crypto/bn/bn_nist.c b/crypto/bn/bn_nist.c
index 79f7c2ef28..6aa196f6f8 100644
--- a/crypto/bn/bn_nist.c
+++ b/crypto/bn/bn_nist.c
@@ -127,40 +127,39 @@ const static BN_ULONG _nist_p_521[] = {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
0xFF,0x01};
#endif
-static const BIGNUM_C bn_nist_p_192 =
- { _nist_p_192, BN_NIST_192_TOP, BN_NIST_192_TOP, 0, BN_FLG_STATIC_DATA };
-static const BIGNUM_C bn_nist_p_224 =
- { _nist_p_224, BN_NIST_224_TOP, BN_NIST_224_TOP, 0, BN_FLG_STATIC_DATA };
-static const BIGNUM_C bn_nist_p_256 =
- { _nist_p_256, BN_NIST_256_TOP, BN_NIST_256_TOP, 0, BN_FLG_STATIC_DATA };
-static const BIGNUM_C bn_nist_p_384 =
- { _nist_p_384, BN_NIST_384_TOP, BN_NIST_384_TOP, 0, BN_FLG_STATIC_DATA };
-static const BIGNUM_C bn_nist_p_521 =
- { _nist_p_521, BN_NIST_521_TOP, BN_NIST_521_TOP, 0, BN_FLG_STATIC_DATA };
-
const BIGNUM *BN_get0_nist_prime_192(void)
{
- return BIGNUM_CONST(&bn_nist_p_192);
+ static BIGNUM const_nist_192 = { (BN_ULONG *)_nist_p_192,
+ BN_NIST_192_TOP, BN_NIST_192_TOP, 0, BN_FLG_STATIC_DATA };
+ return &const_nist_192;
}
const BIGNUM *BN_get0_nist_prime_224(void)
{
- return BIGNUM_CONST(&bn_nist_p_224);
+ static BIGNUM const_nist_224 = { (BN_ULONG *)_nist_p_224,
+ BN_NIST_224_TOP, BN_NIST_224_TOP, 0, BN_FLG_STATIC_DATA };
+ return &const_nist_224;
}
const BIGNUM *BN_get0_nist_prime_256(void)
{
- return BIGNUM_CONST(&bn_nist_p_256);
+ static BIGNUM const_nist_256 = { (BN_ULONG *)_nist_p_256,
+ BN_NIST_256_TOP, BN_NIST_256_TOP, 0, BN_FLG_STATIC_DATA };
+ return &const_nist_256;
}
const BIGNUM *BN_get0_nist_prime_384(void)
{
- return BIGNUM_CONST(&bn_nist_p_384);
+ static BIGNUM const_nist_384 = { (BN_ULONG *)_nist_p_384,
+ BN_NIST_384_TOP, BN_NIST_384_TOP, 0, BN_FLG_STATIC_DATA };
+ return &const_nist_384;
}
const BIGNUM *BN_get0_nist_prime_521(void)
{
- return BIGNUM_CONST(&bn_nist_p_521);
+ static BIGNUM const_nist_521 = { (BN_ULONG *)_nist_p_521,
+ BN_NIST_521_TOP, BN_NIST_521_TOP, 0, BN_FLG_STATIC_DATA };
+ return &const_nist_521;
}
/* some misc internal functions */