summaryrefslogtreecommitdiff
path: root/security/heimdal/patches
diff options
context:
space:
mode:
authorhans <hans>2011-09-15 13:01:14 +0000
committerhans <hans>2011-09-15 13:01:14 +0000
commit6f4f7bb94f438015a9960a0a22489586d0fb0585 (patch)
tree2a259544498fa5f15f015cc787c0a803f1faa9c3 /security/heimdal/patches
parent9041a1ce43c29760bc3f4d6bc62dbcb238e984d9 (diff)
downloadpkgsrc-6f4f7bb94f438015a9960a0a22489586d0fb0585.tar.gz
Split and clean up tommath patches. Requested by wiz.
Diffstat (limited to 'security/heimdal/patches')
-rw-r--r--security/heimdal/patches/patch-lib_hcrypto_libtommath_tommath.h1087
-rw-r--r--security/heimdal/patches/patch-lib_hcrypto_libtommath_tommath_class.h1001
-rw-r--r--security/heimdal/patches/patch-lib_hcrypto_libtommath_tommath_superclass.h77
3 files changed, 1082 insertions, 1083 deletions
diff --git a/security/heimdal/patches/patch-lib_hcrypto_libtommath_tommath.h b/security/heimdal/patches/patch-lib_hcrypto_libtommath_tommath.h
index 0e07ac8138d..64a374e5a4a 100644
--- a/security/heimdal/patches/patch-lib_hcrypto_libtommath_tommath.h
+++ b/security/heimdal/patches/patch-lib_hcrypto_libtommath_tommath.h
@@ -1,8 +1,8 @@
-$NetBSD: patch-lib_hcrypto_libtommath_tommath.h,v 1.2 2011/09/15 09:32:32 wiz Exp $
+$NetBSD: patch-lib_hcrypto_libtommath_tommath.h,v 1.3 2011/09/15 13:01:14 hans Exp $
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ lib/hcrypto/libtommath/tommath.h 29 Oct 2010 01:14:54 -0000
-@@ -0,0 +1,588 @@
+--- lib/hcrypto/libtommath/tommath.h.orig 2011-09-15 09:31:23.190661136 +0200
++++ lib/hcrypto/libtommath/tommath.h 2011-09-15 09:32:00.326647970 +0200
+@@ -0,0 +1,587 @@
+/* LibTomMath, multiple-precision integer library -- Tom St Denis
+ *
+ * LibTomMath is a library that provides multiple-precision
@@ -590,1082 +590,3 @@ $NetBSD: patch-lib_hcrypto_libtommath_tommath.h,v 1.2 2011/09/15 09:32:32 wiz Ex
+#endif
+
+#endif
-+
-+
-+/* $Source: /cvsroot/pkgsrc/security/heimdal/patches/Attic/patch-lib_hcrypto_libtommath_tommath.h,v $ */
-+/* $Revision: 1.2 $ */
-+/* $Date: 2011/09/15 09:32:32 $ */
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ lib/hcrypto/libtommath/tommath_class.h 29 Oct 2010 01:14:54 -0000
-@@ -0,0 +1,1000 @@
-+#if !(defined(LTM1) && defined(LTM2) && defined(LTM3))
-+#if defined(LTM2)
-+#define LTM3
-+#endif
-+#if defined(LTM1)
-+#define LTM2
-+#endif
-+#define LTM1
-+
-+#if defined(LTM_ALL)
-+#define BN_ERROR_C
-+#define BN_FAST_MP_INVMOD_C
-+#define BN_FAST_MP_MONTGOMERY_REDUCE_C
-+#define BN_FAST_S_MP_MUL_DIGS_C
-+#define BN_FAST_S_MP_MUL_HIGH_DIGS_C
-+#define BN_FAST_S_MP_SQR_C
-+#define BN_MP_2EXPT_C
-+#define BN_MP_ABS_C
-+#define BN_MP_ADD_C
-+#define BN_MP_ADD_D_C
-+#define BN_MP_ADDMOD_C
-+#define BN_MP_AND_C
-+#define BN_MP_CLAMP_C
-+#define BN_MP_CLEAR_C
-+#define BN_MP_CLEAR_MULTI_C
-+#define BN_MP_CMP_C
-+#define BN_MP_CMP_D_C
-+#define BN_MP_CMP_MAG_C
-+#define BN_MP_CNT_LSB_C
-+#define BN_MP_COPY_C
-+#define BN_MP_COUNT_BITS_C
-+#define BN_MP_DIV_C
-+#define BN_MP_DIV_2_C
-+#define BN_MP_DIV_2D_C
-+#define BN_MP_DIV_3_C
-+#define BN_MP_DIV_D_C
-+#define BN_MP_DR_IS_MODULUS_C
-+#define BN_MP_DR_REDUCE_C
-+#define BN_MP_DR_SETUP_C
-+#define BN_MP_EXCH_C
-+#define BN_MP_EXPT_D_C
-+#define BN_MP_EXPTMOD_C
-+#define BN_MP_EXPTMOD_FAST_C
-+#define BN_MP_EXTEUCLID_C
-+#define BN_MP_FREAD_C
-+#define BN_MP_FWRITE_C
-+#define BN_MP_GCD_C
-+#define BN_MP_GET_INT_C
-+#define BN_MP_GROW_C
-+#define BN_MP_INIT_C
-+#define BN_MP_INIT_COPY_C
-+#define BN_MP_INIT_MULTI_C
-+#define BN_MP_INIT_SET_C
-+#define BN_MP_INIT_SET_INT_C
-+#define BN_MP_INIT_SIZE_C
-+#define BN_MP_INVMOD_C
-+#define BN_MP_INVMOD_SLOW_C
-+#define BN_MP_IS_SQUARE_C
-+#define BN_MP_JACOBI_C
-+#define BN_MP_KARATSUBA_MUL_C
-+#define BN_MP_KARATSUBA_SQR_C
-+#define BN_MP_LCM_C
-+#define BN_MP_LSHD_C
-+#define BN_MP_MOD_C
-+#define BN_MP_MOD_2D_C
-+#define BN_MP_MOD_D_C
-+#define BN_MP_MONTGOMERY_CALC_NORMALIZATION_C
-+#define BN_MP_MONTGOMERY_REDUCE_C
-+#define BN_MP_MONTGOMERY_SETUP_C
-+#define BN_MP_MUL_C
-+#define BN_MP_MUL_2_C
-+#define BN_MP_MUL_2D_C
-+#define BN_MP_MUL_D_C
-+#define BN_MP_MULMOD_C
-+#define BN_MP_N_ROOT_C
-+#define BN_MP_NEG_C
-+#define BN_MP_OR_C
-+#define BN_MP_PRIME_FERMAT_C
-+#define BN_MP_PRIME_IS_DIVISIBLE_C
-+#define BN_MP_PRIME_IS_PRIME_C
-+#define BN_MP_PRIME_MILLER_RABIN_C
-+#define BN_MP_PRIME_NEXT_PRIME_C
-+#define BN_MP_PRIME_RABIN_MILLER_TRIALS_C
-+#define BN_MP_PRIME_RANDOM_EX_C
-+#define BN_MP_RADIX_SIZE_C
-+#define BN_MP_RADIX_SMAP_C
-+#define BN_MP_RAND_C
-+#define BN_MP_READ_RADIX_C
-+#define BN_MP_READ_SIGNED_BIN_C
-+#define BN_MP_READ_UNSIGNED_BIN_C
-+#define BN_MP_REDUCE_C
-+#define BN_MP_REDUCE_2K_C
-+#define BN_MP_REDUCE_2K_L_C
-+#define BN_MP_REDUCE_2K_SETUP_C
-+#define BN_MP_REDUCE_2K_SETUP_L_C
-+#define BN_MP_REDUCE_IS_2K_C
-+#define BN_MP_REDUCE_IS_2K_L_C
-+#define BN_MP_REDUCE_SETUP_C
-+#define BN_MP_RSHD_C
-+#define BN_MP_SET_C
-+#define BN_MP_SET_INT_C
-+#define BN_MP_SHRINK_C
-+#define BN_MP_SIGNED_BIN_SIZE_C
-+#define BN_MP_SQR_C
-+#define BN_MP_SQRMOD_C
-+#define BN_MP_SQRT_C
-+#define BN_MP_SUB_C
-+#define BN_MP_SUB_D_C
-+#define BN_MP_SUBMOD_C
-+#define BN_MP_TO_SIGNED_BIN_C
-+#define BN_MP_TO_SIGNED_BIN_N_C
-+#define BN_MP_TO_UNSIGNED_BIN_C
-+#define BN_MP_TO_UNSIGNED_BIN_N_C
-+#define BN_MP_TOOM_MUL_C
-+#define BN_MP_TOOM_SQR_C
-+#define BN_MP_TORADIX_C
-+#define BN_MP_TORADIX_N_C
-+#define BN_MP_UNSIGNED_BIN_SIZE_C
-+#define BN_MP_XOR_C
-+#define BN_MP_ZERO_C
-+#define BN_MP_ZERO_MULTI_C
-+#define BN_PRIME_TAB_C
-+#define BN_REVERSE_C
-+#define BN_S_MP_ADD_C
-+#define BN_S_MP_EXPTMOD_C
-+#define BN_S_MP_MUL_DIGS_C
-+#define BN_S_MP_MUL_HIGH_DIGS_C
-+#define BN_S_MP_SQR_C
-+#define BN_S_MP_SUB_C
-+#define BNCORE_C
-+#endif
-+
-+#if defined(BN_ERROR_C)
-+ #define BN_MP_ERROR_TO_STRING_C
-+#endif
-+
-+#if defined(BN_FAST_MP_INVMOD_C)
-+ #define BN_MP_ISEVEN_C
-+ #define BN_MP_INIT_MULTI_C
-+ #define BN_MP_COPY_C
-+ #define BN_MP_MOD_C
-+ #define BN_MP_SET_C
-+ #define BN_MP_DIV_2_C
-+ #define BN_MP_ISODD_C
-+ #define BN_MP_SUB_C
-+ #define BN_MP_CMP_C
-+ #define BN_MP_ISZERO_C
-+ #define BN_MP_CMP_D_C
-+ #define BN_MP_ADD_C
-+ #define BN_MP_EXCH_C
-+ #define BN_MP_CLEAR_MULTI_C
-+#endif
-+
-+#if defined(BN_FAST_MP_MONTGOMERY_REDUCE_C)
-+ #define BN_MP_GROW_C
-+ #define BN_MP_RSHD_C
-+ #define BN_MP_CLAMP_C
-+ #define BN_MP_CMP_MAG_C
-+ #define BN_S_MP_SUB_C
-+#endif
-+
-+#if defined(BN_FAST_S_MP_MUL_DIGS_C)
-+ #define BN_MP_GROW_C
-+ #define BN_MP_CLAMP_C
-+#endif
-+
-+#if defined(BN_FAST_S_MP_MUL_HIGH_DIGS_C)
-+ #define BN_MP_GROW_C
-+ #define BN_MP_CLAMP_C
-+#endif
-+
-+#if defined(BN_FAST_S_MP_SQR_C)
-+ #define BN_MP_GROW_C
-+ #define BN_MP_CLAMP_C
-+#endif
-+
-+#if defined(BN_MP_2EXPT_C)
-+ #define BN_MP_ZERO_C
-+ #define BN_MP_GROW_C
-+#endif
-+
-+#if defined(BN_MP_ABS_C)
-+ #define BN_MP_COPY_C
-+#endif
-+
-+#if defined(BN_MP_ADD_C)
-+ #define BN_S_MP_ADD_C
-+ #define BN_MP_CMP_MAG_C
-+ #define BN_S_MP_SUB_C
-+#endif
-+
-+#if defined(BN_MP_ADD_D_C)
-+ #define BN_MP_GROW_C
-+ #define BN_MP_SUB_D_C
-+ #define BN_MP_CLAMP_C
-+#endif
-+
-+#if defined(BN_MP_ADDMOD_C)
-+ #define BN_MP_INIT_C
-+ #define BN_MP_ADD_C
-+ #define BN_MP_CLEAR_C
-+ #define BN_MP_MOD_C
-+#endif
-+
-+#if defined(BN_MP_AND_C)
-+ #define BN_MP_INIT_COPY_C
-+ #define BN_MP_CLAMP_C
-+ #define BN_MP_EXCH_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_CLAMP_C)
-+#endif
-+
-+#if defined(BN_MP_CLEAR_C)
-+#endif
-+
-+#if defined(BN_MP_CLEAR_MULTI_C)
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_CMP_C)
-+ #define BN_MP_CMP_MAG_C
-+#endif
-+
-+#if defined(BN_MP_CMP_D_C)
-+#endif
-+
-+#if defined(BN_MP_CMP_MAG_C)
-+#endif
-+
-+#if defined(BN_MP_CNT_LSB_C)
-+ #define BN_MP_ISZERO_C
-+#endif
-+
-+#if defined(BN_MP_COPY_C)
-+ #define BN_MP_GROW_C
-+#endif
-+
-+#if defined(BN_MP_COUNT_BITS_C)
-+#endif
-+
-+#if defined(BN_MP_DIV_C)
-+ #define BN_MP_ISZERO_C
-+ #define BN_MP_CMP_MAG_C
-+ #define BN_MP_COPY_C
-+ #define BN_MP_ZERO_C
-+ #define BN_MP_INIT_MULTI_C
-+ #define BN_MP_SET_C
-+ #define BN_MP_COUNT_BITS_C
-+ #define BN_MP_ABS_C
-+ #define BN_MP_MUL_2D_C
-+ #define BN_MP_CMP_C
-+ #define BN_MP_SUB_C
-+ #define BN_MP_ADD_C
-+ #define BN_MP_DIV_2D_C
-+ #define BN_MP_EXCH_C
-+ #define BN_MP_CLEAR_MULTI_C
-+ #define BN_MP_INIT_SIZE_C
-+ #define BN_MP_INIT_C
-+ #define BN_MP_INIT_COPY_C
-+ #define BN_MP_LSHD_C
-+ #define BN_MP_RSHD_C
-+ #define BN_MP_MUL_D_C
-+ #define BN_MP_CLAMP_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_DIV_2_C)
-+ #define BN_MP_GROW_C
-+ #define BN_MP_CLAMP_C
-+#endif
-+
-+#if defined(BN_MP_DIV_2D_C)
-+ #define BN_MP_COPY_C
-+ #define BN_MP_ZERO_C
-+ #define BN_MP_INIT_C
-+ #define BN_MP_MOD_2D_C
-+ #define BN_MP_CLEAR_C
-+ #define BN_MP_RSHD_C
-+ #define BN_MP_CLAMP_C
-+ #define BN_MP_EXCH_C
-+#endif
-+
-+#if defined(BN_MP_DIV_3_C)
-+ #define BN_MP_INIT_SIZE_C
-+ #define BN_MP_CLAMP_C
-+ #define BN_MP_EXCH_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_DIV_D_C)
-+ #define BN_MP_ISZERO_C
-+ #define BN_MP_COPY_C
-+ #define BN_MP_DIV_2D_C
-+ #define BN_MP_DIV_3_C
-+ #define BN_MP_INIT_SIZE_C
-+ #define BN_MP_CLAMP_C
-+ #define BN_MP_EXCH_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_DR_IS_MODULUS_C)
-+#endif
-+
-+#if defined(BN_MP_DR_REDUCE_C)
-+ #define BN_MP_GROW_C
-+ #define BN_MP_CLAMP_C
-+ #define BN_MP_CMP_MAG_C
-+ #define BN_S_MP_SUB_C
-+#endif
-+
-+#if defined(BN_MP_DR_SETUP_C)
-+#endif
-+
-+#if defined(BN_MP_EXCH_C)
-+#endif
-+
-+#if defined(BN_MP_EXPT_D_C)
-+ #define BN_MP_INIT_COPY_C
-+ #define BN_MP_SET_C
-+ #define BN_MP_SQR_C
-+ #define BN_MP_CLEAR_C
-+ #define BN_MP_MUL_C
-+#endif
-+
-+#if defined(BN_MP_EXPTMOD_C)
-+ #define BN_MP_INIT_C
-+ #define BN_MP_INVMOD_C
-+ #define BN_MP_CLEAR_C
-+ #define BN_MP_ABS_C
-+ #define BN_MP_CLEAR_MULTI_C
-+ #define BN_MP_REDUCE_IS_2K_L_C
-+ #define BN_S_MP_EXPTMOD_C
-+ #define BN_MP_DR_IS_MODULUS_C
-+ #define BN_MP_REDUCE_IS_2K_C
-+ #define BN_MP_ISODD_C
-+ #define BN_MP_EXPTMOD_FAST_C
-+#endif
-+
-+#if defined(BN_MP_EXPTMOD_FAST_C)
-+ #define BN_MP_COUNT_BITS_C
-+ #define BN_MP_INIT_C
-+ #define BN_MP_CLEAR_C
-+ #define BN_MP_MONTGOMERY_SETUP_C
-+ #define BN_FAST_MP_MONTGOMERY_REDUCE_C
-+ #define BN_MP_MONTGOMERY_REDUCE_C
-+ #define BN_MP_DR_SETUP_C
-+ #define BN_MP_DR_REDUCE_C
-+ #define BN_MP_REDUCE_2K_SETUP_C
-+ #define BN_MP_REDUCE_2K_C
-+ #define BN_MP_MONTGOMERY_CALC_NORMALIZATION_C
-+ #define BN_MP_MULMOD_C
-+ #define BN_MP_SET_C
-+ #define BN_MP_MOD_C
-+ #define BN_MP_COPY_C
-+ #define BN_MP_SQR_C
-+ #define BN_MP_MUL_C
-+ #define BN_MP_EXCH_C
-+#endif
-+
-+#if defined(BN_MP_EXTEUCLID_C)
-+ #define BN_MP_INIT_MULTI_C
-+ #define BN_MP_SET_C
-+ #define BN_MP_COPY_C
-+ #define BN_MP_ISZERO_C
-+ #define BN_MP_DIV_C
-+ #define BN_MP_MUL_C
-+ #define BN_MP_SUB_C
-+ #define BN_MP_NEG_C
-+ #define BN_MP_EXCH_C
-+ #define BN_MP_CLEAR_MULTI_C
-+#endif
-+
-+#if defined(BN_MP_FREAD_C)
-+ #define BN_MP_ZERO_C
-+ #define BN_MP_S_RMAP_C
-+ #define BN_MP_MUL_D_C
-+ #define BN_MP_ADD_D_C
-+ #define BN_MP_CMP_D_C
-+#endif
-+
-+#if defined(BN_MP_FWRITE_C)
-+ #define BN_MP_RADIX_SIZE_C
-+ #define BN_MP_TORADIX_C
-+#endif
-+
-+#if defined(BN_MP_GCD_C)
-+ #define BN_MP_ISZERO_C
-+ #define BN_MP_ABS_C
-+ #define BN_MP_ZERO_C
-+ #define BN_MP_INIT_COPY_C
-+ #define BN_MP_CNT_LSB_C
-+ #define BN_MP_DIV_2D_C
-+ #define BN_MP_CMP_MAG_C
-+ #define BN_MP_EXCH_C
-+ #define BN_S_MP_SUB_C
-+ #define BN_MP_MUL_2D_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_GET_INT_C)
-+#endif
-+
-+#if defined(BN_MP_GROW_C)
-+#endif
-+
-+#if defined(BN_MP_INIT_C)
-+#endif
-+
-+#if defined(BN_MP_INIT_COPY_C)
-+ #define BN_MP_COPY_C
-+#endif
-+
-+#if defined(BN_MP_INIT_MULTI_C)
-+ #define BN_MP_ERR_C
-+ #define BN_MP_INIT_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_INIT_SET_C)
-+ #define BN_MP_INIT_C
-+ #define BN_MP_SET_C
-+#endif
-+
-+#if defined(BN_MP_INIT_SET_INT_C)
-+ #define BN_MP_INIT_C
-+ #define BN_MP_SET_INT_C
-+#endif
-+
-+#if defined(BN_MP_INIT_SIZE_C)
-+ #define BN_MP_INIT_C
-+#endif
-+
-+#if defined(BN_MP_INVMOD_C)
-+ #define BN_MP_ISZERO_C
-+ #define BN_MP_ISODD_C
-+ #define BN_FAST_MP_INVMOD_C
-+ #define BN_MP_INVMOD_SLOW_C
-+#endif
-+
-+#if defined(BN_MP_INVMOD_SLOW_C)
-+ #define BN_MP_ISZERO_C
-+ #define BN_MP_INIT_MULTI_C
-+ #define BN_MP_MOD_C
-+ #define BN_MP_COPY_C
-+ #define BN_MP_ISEVEN_C
-+ #define BN_MP_SET_C
-+ #define BN_MP_DIV_2_C
-+ #define BN_MP_ISODD_C
-+ #define BN_MP_ADD_C
-+ #define BN_MP_SUB_C
-+ #define BN_MP_CMP_C
-+ #define BN_MP_CMP_D_C
-+ #define BN_MP_CMP_MAG_C
-+ #define BN_MP_EXCH_C
-+ #define BN_MP_CLEAR_MULTI_C
-+#endif
-+
-+#if defined(BN_MP_IS_SQUARE_C)
-+ #define BN_MP_MOD_D_C
-+ #define BN_MP_INIT_SET_INT_C
-+ #define BN_MP_MOD_C
-+ #define BN_MP_GET_INT_C
-+ #define BN_MP_SQRT_C
-+ #define BN_MP_SQR_C
-+ #define BN_MP_CMP_MAG_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_JACOBI_C)
-+ #define BN_MP_CMP_D_C
-+ #define BN_MP_ISZERO_C
-+ #define BN_MP_INIT_COPY_C
-+ #define BN_MP_CNT_LSB_C
-+ #define BN_MP_DIV_2D_C
-+ #define BN_MP_MOD_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_KARATSUBA_MUL_C)
-+ #define BN_MP_MUL_C
-+ #define BN_MP_INIT_SIZE_C
-+ #define BN_MP_CLAMP_C
-+ #define BN_MP_SUB_C
-+ #define BN_MP_ADD_C
-+ #define BN_MP_LSHD_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_KARATSUBA_SQR_C)
-+ #define BN_MP_INIT_SIZE_C
-+ #define BN_MP_CLAMP_C
-+ #define BN_MP_SQR_C
-+ #define BN_MP_SUB_C
-+ #define BN_S_MP_ADD_C
-+ #define BN_MP_LSHD_C
-+ #define BN_MP_ADD_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_LCM_C)
-+ #define BN_MP_INIT_MULTI_C
-+ #define BN_MP_GCD_C
-+ #define BN_MP_CMP_MAG_C
-+ #define BN_MP_DIV_C
-+ #define BN_MP_MUL_C
-+ #define BN_MP_CLEAR_MULTI_C
-+#endif
-+
-+#if defined(BN_MP_LSHD_C)
-+ #define BN_MP_GROW_C
-+ #define BN_MP_RSHD_C
-+#endif
-+
-+#if defined(BN_MP_MOD_C)
-+ #define BN_MP_INIT_C
-+ #define BN_MP_DIV_C
-+ #define BN_MP_CLEAR_C
-+ #define BN_MP_ADD_C
-+ #define BN_MP_EXCH_C
-+#endif
-+
-+#if defined(BN_MP_MOD_2D_C)
-+ #define BN_MP_ZERO_C
-+ #define BN_MP_COPY_C
-+ #define BN_MP_CLAMP_C
-+#endif
-+
-+#if defined(BN_MP_MOD_D_C)
-+ #define BN_MP_DIV_D_C
-+#endif
-+
-+#if defined(BN_MP_MONTGOMERY_CALC_NORMALIZATION_C)
-+ #define BN_MP_COUNT_BITS_C
-+ #define BN_MP_2EXPT_C
-+ #define BN_MP_SET_C
-+ #define BN_MP_MUL_2_C
-+ #define BN_MP_CMP_MAG_C
-+ #define BN_S_MP_SUB_C
-+#endif
-+
-+#if defined(BN_MP_MONTGOMERY_REDUCE_C)
-+ #define BN_FAST_MP_MONTGOMERY_REDUCE_C
-+ #define BN_MP_GROW_C
-+ #define BN_MP_CLAMP_C
-+ #define BN_MP_RSHD_C
-+ #define BN_MP_CMP_MAG_C
-+ #define BN_S_MP_SUB_C
-+#endif
-+
-+#if defined(BN_MP_MONTGOMERY_SETUP_C)
-+#endif
-+
-+#if defined(BN_MP_MUL_C)
-+ #define BN_MP_TOOM_MUL_C
-+ #define BN_MP_KARATSUBA_MUL_C
-+ #define BN_FAST_S_MP_MUL_DIGS_C
-+ #define BN_S_MP_MUL_C
-+ #define BN_S_MP_MUL_DIGS_C
-+#endif
-+
-+#if defined(BN_MP_MUL_2_C)
-+ #define BN_MP_GROW_C
-+#endif
-+
-+#if defined(BN_MP_MUL_2D_C)
-+ #define BN_MP_COPY_C
-+ #define BN_MP_GROW_C
-+ #define BN_MP_LSHD_C
-+ #define BN_MP_CLAMP_C
-+#endif
-+
-+#if defined(BN_MP_MUL_D_C)
-+ #define BN_MP_GROW_C
-+ #define BN_MP_CLAMP_C
-+#endif
-+
-+#if defined(BN_MP_MULMOD_C)
-+ #define BN_MP_INIT_C
-+ #define BN_MP_MUL_C
-+ #define BN_MP_CLEAR_C
-+ #define BN_MP_MOD_C
-+#endif
-+
-+#if defined(BN_MP_N_ROOT_C)
-+ #define BN_MP_INIT_C
-+ #define BN_MP_SET_C
-+ #define BN_MP_COPY_C
-+ #define BN_MP_EXPT_D_C
-+ #define BN_MP_MUL_C
-+ #define BN_MP_SUB_C
-+ #define BN_MP_MUL_D_C
-+ #define BN_MP_DIV_C
-+ #define BN_MP_CMP_C
-+ #define BN_MP_SUB_D_C
-+ #define BN_MP_EXCH_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_NEG_C)
-+ #define BN_MP_COPY_C
-+ #define BN_MP_ISZERO_C
-+#endif
-+
-+#if defined(BN_MP_OR_C)
-+ #define BN_MP_INIT_COPY_C
-+ #define BN_MP_CLAMP_C
-+ #define BN_MP_EXCH_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_PRIME_FERMAT_C)
-+ #define BN_MP_CMP_D_C
-+ #define BN_MP_INIT_C
-+ #define BN_MP_EXPTMOD_C
-+ #define BN_MP_CMP_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_PRIME_IS_DIVISIBLE_C)
-+ #define BN_MP_MOD_D_C
-+#endif
-+
-+#if defined(BN_MP_PRIME_IS_PRIME_C)
-+ #define BN_MP_CMP_D_C
-+ #define BN_MP_PRIME_IS_DIVISIBLE_C
-+ #define BN_MP_INIT_C
-+ #define BN_MP_SET_C
-+ #define BN_MP_PRIME_MILLER_RABIN_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_PRIME_MILLER_RABIN_C)
-+ #define BN_MP_CMP_D_C
-+ #define BN_MP_INIT_COPY_C
-+ #define BN_MP_SUB_D_C
-+ #define BN_MP_CNT_LSB_C
-+ #define BN_MP_DIV_2D_C
-+ #define BN_MP_EXPTMOD_C
-+ #define BN_MP_CMP_C
-+ #define BN_MP_SQRMOD_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_PRIME_NEXT_PRIME_C)
-+ #define BN_MP_CMP_D_C
-+ #define BN_MP_SET_C
-+ #define BN_MP_SUB_D_C
-+ #define BN_MP_ISEVEN_C
-+ #define BN_MP_MOD_D_C
-+ #define BN_MP_INIT_C
-+ #define BN_MP_ADD_D_C
-+ #define BN_MP_PRIME_MILLER_RABIN_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_PRIME_RABIN_MILLER_TRIALS_C)
-+#endif
-+
-+#if defined(BN_MP_PRIME_RANDOM_EX_C)
-+ #define BN_MP_READ_UNSIGNED_BIN_C
-+ #define BN_MP_PRIME_IS_PRIME_C
-+ #define BN_MP_SUB_D_C
-+ #define BN_MP_DIV_2_C
-+ #define BN_MP_MUL_2_C
-+ #define BN_MP_ADD_D_C
-+#endif
-+
-+#if defined(BN_MP_RADIX_SIZE_C)
-+ #define BN_MP_COUNT_BITS_C
-+ #define BN_MP_INIT_COPY_C
-+ #define BN_MP_ISZERO_C
-+ #define BN_MP_DIV_D_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_RADIX_SMAP_C)
-+ #define BN_MP_S_RMAP_C
-+#endif
-+
-+#if defined(BN_MP_RAND_C)
-+ #define BN_MP_ZERO_C
-+ #define BN_MP_ADD_D_C
-+ #define BN_MP_LSHD_C
-+#endif
-+
-+#if defined(BN_MP_READ_RADIX_C)
-+ #define BN_MP_ZERO_C
-+ #define BN_MP_S_RMAP_C
-+ #define BN_MP_RADIX_SMAP_C
-+ #define BN_MP_MUL_D_C
-+ #define BN_MP_ADD_D_C
-+ #define BN_MP_ISZERO_C
-+#endif
-+
-+#if defined(BN_MP_READ_SIGNED_BIN_C)
-+ #define BN_MP_READ_UNSIGNED_BIN_C
-+#endif
-+
-+#if defined(BN_MP_READ_UNSIGNED_BIN_C)
-+ #define BN_MP_GROW_C
-+ #define BN_MP_ZERO_C
-+ #define BN_MP_MUL_2D_C
-+ #define BN_MP_CLAMP_C
-+#endif
-+
-+#if defined(BN_MP_REDUCE_C)
-+ #define BN_MP_REDUCE_SETUP_C
-+ #define BN_MP_INIT_COPY_C
-+ #define BN_MP_RSHD_C
-+ #define BN_MP_MUL_C
-+ #define BN_S_MP_MUL_HIGH_DIGS_C
-+ #define BN_FAST_S_MP_MUL_HIGH_DIGS_C
-+ #define BN_MP_MOD_2D_C
-+ #define BN_S_MP_MUL_DIGS_C
-+ #define BN_MP_SUB_C
-+ #define BN_MP_CMP_D_C
-+ #define BN_MP_SET_C
-+ #define BN_MP_LSHD_C
-+ #define BN_MP_ADD_C
-+ #define BN_MP_CMP_C
-+ #define BN_S_MP_SUB_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_REDUCE_2K_C)
-+ #define BN_MP_INIT_C
-+ #define BN_MP_COUNT_BITS_C
-+ #define BN_MP_DIV_2D_C
-+ #define BN_MP_MUL_D_C
-+ #define BN_S_MP_ADD_C
-+ #define BN_MP_CMP_MAG_C
-+ #define BN_S_MP_SUB_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_REDUCE_2K_L_C)
-+ #define BN_MP_INIT_C
-+ #define BN_MP_COUNT_BITS_C
-+ #define BN_MP_DIV_2D_C
-+ #define BN_MP_MUL_C
-+ #define BN_S_MP_ADD_C
-+ #define BN_MP_CMP_MAG_C
-+ #define BN_S_MP_SUB_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_REDUCE_2K_SETUP_C)
-+ #define BN_MP_INIT_C
-+ #define BN_MP_COUNT_BITS_C
-+ #define BN_MP_2EXPT_C
-+ #define BN_MP_CLEAR_C
-+ #define BN_S_MP_SUB_C
-+#endif
-+
-+#if defined(BN_MP_REDUCE_2K_SETUP_L_C)
-+ #define BN_MP_INIT_C
-+ #define BN_MP_2EXPT_C
-+ #define BN_MP_COUNT_BITS_C
-+ #define BN_S_MP_SUB_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_REDUCE_IS_2K_C)
-+ #define BN_MP_REDUCE_2K_C
-+ #define BN_MP_COUNT_BITS_C
-+#endif
-+
-+#if defined(BN_MP_REDUCE_IS_2K_L_C)
-+#endif
-+
-+#if defined(BN_MP_REDUCE_SETUP_C)
-+ #define BN_MP_2EXPT_C
-+ #define BN_MP_DIV_C
-+#endif
-+
-+#if defined(BN_MP_RSHD_C)
-+ #define BN_MP_ZERO_C
-+#endif
-+
-+#if defined(BN_MP_SET_C)
-+ #define BN_MP_ZERO_C
-+#endif
-+
-+#if defined(BN_MP_SET_INT_C)
-+ #define BN_MP_ZERO_C
-+ #define BN_MP_MUL_2D_C
-+ #define BN_MP_CLAMP_C
-+#endif
-+
-+#if defined(BN_MP_SHRINK_C)
-+#endif
-+
-+#if defined(BN_MP_SIGNED_BIN_SIZE_C)
-+ #define BN_MP_UNSIGNED_BIN_SIZE_C
-+#endif
-+
-+#if defined(BN_MP_SQR_C)
-+ #define BN_MP_TOOM_SQR_C
-+ #define BN_MP_KARATSUBA_SQR_C
-+ #define BN_FAST_S_MP_SQR_C
-+ #define BN_S_MP_SQR_C
-+#endif
-+
-+#if defined(BN_MP_SQRMOD_C)
-+ #define BN_MP_INIT_C
-+ #define BN_MP_SQR_C
-+ #define BN_MP_CLEAR_C
-+ #define BN_MP_MOD_C
-+#endif
-+
-+#if defined(BN_MP_SQRT_C)
-+ #define BN_MP_N_ROOT_C
-+ #define BN_MP_ISZERO_C
-+ #define BN_MP_ZERO_C
-+ #define BN_MP_INIT_COPY_C
-+ #define BN_MP_RSHD_C
-+ #define BN_MP_DIV_C
-+ #define BN_MP_ADD_C
-+ #define BN_MP_DIV_2_C
-+ #define BN_MP_CMP_MAG_C
-+ #define BN_MP_EXCH_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_SUB_C)
-+ #define BN_S_MP_ADD_C
-+ #define BN_MP_CMP_MAG_C
-+ #define BN_S_MP_SUB_C
-+#endif
-+
-+#if defined(BN_MP_SUB_D_C)
-+ #define BN_MP_GROW_C
-+ #define BN_MP_ADD_D_C
-+ #define BN_MP_CLAMP_C
-+#endif
-+
-+#if defined(BN_MP_SUBMOD_C)
-+ #define BN_MP_INIT_C
-+ #define BN_MP_SUB_C
-+ #define BN_MP_CLEAR_C
-+ #define BN_MP_MOD_C
-+#endif
-+
-+#if defined(BN_MP_TO_SIGNED_BIN_C)
-+ #define BN_MP_TO_UNSIGNED_BIN_C
-+#endif
-+
-+#if defined(BN_MP_TO_SIGNED_BIN_N_C)
-+ #define BN_MP_SIGNED_BIN_SIZE_C
-+ #define BN_MP_TO_SIGNED_BIN_C
-+#endif
-+
-+#if defined(BN_MP_TO_UNSIGNED_BIN_C)
-+ #define BN_MP_INIT_COPY_C
-+ #define BN_MP_ISZERO_C
-+ #define BN_MP_DIV_2D_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_TO_UNSIGNED_BIN_N_C)
-+ #define BN_MP_UNSIGNED_BIN_SIZE_C
-+ #define BN_MP_TO_UNSIGNED_BIN_C
-+#endif
-+
-+#if defined(BN_MP_TOOM_MUL_C)
-+ #define BN_MP_INIT_MULTI_C
-+ #define BN_MP_MOD_2D_C
-+ #define BN_MP_COPY_C
-+ #define BN_MP_RSHD_C
-+ #define BN_MP_MUL_C
-+ #define BN_MP_MUL_2_C
-+ #define BN_MP_ADD_C
-+ #define BN_MP_SUB_C
-+ #define BN_MP_DIV_2_C
-+ #define BN_MP_MUL_2D_C
-+ #define BN_MP_MUL_D_C
-+ #define BN_MP_DIV_3_C
-+ #define BN_MP_LSHD_C
-+ #define BN_MP_CLEAR_MULTI_C
-+#endif
-+
-+#if defined(BN_MP_TOOM_SQR_C)
-+ #define BN_MP_INIT_MULTI_C
-+ #define BN_MP_MOD_2D_C
-+ #define BN_MP_COPY_C
-+ #define BN_MP_RSHD_C
-+ #define BN_MP_SQR_C
-+ #define BN_MP_MUL_2_C
-+ #define BN_MP_ADD_C
-+ #define BN_MP_SUB_C
-+ #define BN_MP_DIV_2_C
-+ #define BN_MP_MUL_2D_C
-+ #define BN_MP_MUL_D_C
-+ #define BN_MP_DIV_3_C
-+ #define BN_MP_LSHD_C
-+ #define BN_MP_CLEAR_MULTI_C
-+#endif
-+
-+#if defined(BN_MP_TORADIX_C)
-+ #define BN_MP_ISZERO_C
-+ #define BN_MP_INIT_COPY_C
-+ #define BN_MP_DIV_D_C
-+ #define BN_MP_CLEAR_C
-+ #define BN_MP_S_RMAP_C
-+#endif
-+
-+#if defined(BN_MP_TORADIX_N_C)
-+ #define BN_MP_ISZERO_C
-+ #define BN_MP_INIT_COPY_C
-+ #define BN_MP_DIV_D_C
-+ #define BN_MP_CLEAR_C
-+ #define BN_MP_S_RMAP_C
-+#endif
-+
-+#if defined(BN_MP_UNSIGNED_BIN_SIZE_C)
-+ #define BN_MP_COUNT_BITS_C
-+#endif
-+
-+#if defined(BN_MP_XOR_C)
-+ #define BN_MP_INIT_COPY_C
-+ #define BN_MP_CLAMP_C
-+ #define BN_MP_EXCH_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_MP_ZERO_C)
-+#endif
-+
-+#if defined(BN_PRIME_TAB_C)
-+#endif
-+
-+#if defined(BN_REVERSE_C)
-+#endif
-+
-+#if defined(BN_S_MP_ADD_C)
-+ #define BN_MP_GROW_C
-+ #define BN_MP_CLAMP_C
-+#endif
-+
-+#if defined(BN_S_MP_EXPTMOD_C)
-+ #define BN_MP_COUNT_BITS_C
-+ #define BN_MP_INIT_C
-+ #define BN_MP_CLEAR_C
-+ #define BN_MP_REDUCE_SETUP_C
-+ #define BN_MP_REDUCE_C
-+ #define BN_MP_REDUCE_2K_SETUP_L_C
-+ #define BN_MP_REDUCE_2K_L_C
-+ #define BN_MP_MOD_C
-+ #define BN_MP_COPY_C
-+ #define BN_MP_SQR_C
-+ #define BN_MP_MUL_C
-+ #define BN_MP_SET_C
-+ #define BN_MP_EXCH_C
-+#endif
-+
-+#if defined(BN_S_MP_MUL_DIGS_C)
-+ #define BN_FAST_S_MP_MUL_DIGS_C
-+ #define BN_MP_INIT_SIZE_C
-+ #define BN_MP_CLAMP_C
-+ #define BN_MP_EXCH_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_S_MP_MUL_HIGH_DIGS_C)
-+ #define BN_FAST_S_MP_MUL_HIGH_DIGS_C
-+ #define BN_MP_INIT_SIZE_C
-+ #define BN_MP_CLAMP_C
-+ #define BN_MP_EXCH_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_S_MP_SQR_C)
-+ #define BN_MP_INIT_SIZE_C
-+ #define BN_MP_CLAMP_C
-+ #define BN_MP_EXCH_C
-+ #define BN_MP_CLEAR_C
-+#endif
-+
-+#if defined(BN_S_MP_SUB_C)
-+ #define BN_MP_GROW_C
-+ #define BN_MP_CLAMP_C
-+#endif
-+
-+#if defined(BNCORE_C)
-+#endif
-+
-+#ifdef LTM3
-+#define LTM_LAST
-+#endif
-+#include <tommath_superclass.h>
-+#include <tommath_class.h>
-+#else
-+#define LTM_LAST
-+#endif
---- /dev/null 1 Jan 1970 00:00:00 -0000
-+++ lib/hcrypto/libtommath/tommath_superclass.h 29 Oct 2010 01:14:54 -0000
-@@ -0,0 +1,72 @@
-+/* super class file for PK algos */
-+
-+/* default ... include all MPI */
-+#define LTM_ALL
-+
-+/* RSA only (does not support DH/DSA/ECC) */
-+/* #define SC_RSA_1 */
-+
-+/* For reference.... On an Athlon64 optimizing for speed...
-+
-+ LTM's mpi.o with all functions [striped] is 142KiB in size.
-+
-+*/
-+
-+/* Works for RSA only, mpi.o is 68KiB */
-+#ifdef SC_RSA_1
-+ #define BN_MP_SHRINK_C
-+ #define BN_MP_LCM_C
-+ #define BN_MP_PRIME_RANDOM_EX_C
-+ #define BN_MP_INVMOD_C
-+ #define BN_MP_GCD_C
-+ #define BN_MP_MOD_C
-+ #define BN_MP_MULMOD_C
-+ #define BN_MP_ADDMOD_C
-+ #define BN_MP_EXPTMOD_C
-+ #define BN_MP_SET_INT_C
-+ #define BN_MP_INIT_MULTI_C
-+ #define BN_MP_CLEAR_MULTI_C
-+ #define BN_MP_UNSIGNED_BIN_SIZE_C
-+ #define BN_MP_TO_UNSIGNED_BIN_C
-+ #define BN_MP_MOD_D_C
-+ #define BN_MP_PRIME_RABIN_MILLER_TRIALS_C
-+ #define BN_REVERSE_C
-+ #define BN_PRIME_TAB_C
-+
-+ /* other modifiers */
-+ #define BN_MP_DIV_SMALL /* Slower division, not critical */
-+
-+ /* here we are on the last pass so we turn things off. The functions classes are still there
-+ * but we remove them specifically from the build. This also invokes tweaks in functions
-+ * like removing support for even moduli, etc...
-+ */
-+#ifdef LTM_LAST
-+ #undef BN_MP_TOOM_MUL_C
-+ #undef BN_MP_TOOM_SQR_C
-+ #undef BN_MP_KARATSUBA_MUL_C
-+ #undef BN_MP_KARATSUBA_SQR_C
-+ #undef BN_MP_REDUCE_C
-+ #undef BN_MP_REDUCE_SETUP_C
-+ #undef BN_MP_DR_IS_MODULUS_C
-+ #undef BN_MP_DR_SETUP_C
-+ #undef BN_MP_DR_REDUCE_C
-+ #undef BN_MP_REDUCE_IS_2K_C
-+ #undef BN_MP_REDUCE_2K_SETUP_C
-+ #undef BN_MP_REDUCE_2K_C
-+ #undef BN_S_MP_EXPTMOD_C
-+ #undef BN_MP_DIV_3_C
-+ #undef BN_S_MP_MUL_HIGH_DIGS_C
-+ #undef BN_FAST_S_MP_MUL_HIGH_DIGS_C
-+ #undef BN_FAST_MP_INVMOD_C
-+
-+ /* To safely undefine these you have to make sure your RSA key won't exceed the Comba threshold
-+ * which is roughly 255 digits [7140 bits for 32-bit machines, 15300 bits for 64-bit machines]
-+ * which means roughly speaking you can handle upto 2536-bit RSA keys with these defined without
-+ * trouble.
-+ */
-+ #undef BN_S_MP_MUL_DIGS_C
-+ #undef BN_S_MP_SQR_C
-+ #undef BN_MP_MONTGOMERY_REDUCE_C
-+#endif
-+
-+#endif
diff --git a/security/heimdal/patches/patch-lib_hcrypto_libtommath_tommath_class.h b/security/heimdal/patches/patch-lib_hcrypto_libtommath_tommath_class.h
new file mode 100644
index 00000000000..c78f04c1146
--- /dev/null
+++ b/security/heimdal/patches/patch-lib_hcrypto_libtommath_tommath_class.h
@@ -0,0 +1,1001 @@
+$NetBSD: patch-lib_hcrypto_libtommath_tommath_class.h,v 1.1 2011/09/15 13:01:14 hans Exp $
+
+--- lib/hcrypto/libtommath/tommath_class.h.orig 2011-09-15 09:31:23.191236417 +0200
++++ lib/hcrypto/libtommath/tommath_class.h 2011-09-15 09:32:14.747447160 +0200
+@@ -0,0 +1,996 @@
++#if !(defined(LTM1) && defined(LTM2) && defined(LTM3))
++#if defined(LTM2)
++#define LTM3
++#endif
++#if defined(LTM1)
++#define LTM2
++#endif
++#define LTM1
++
++#if defined(LTM_ALL)
++#define BN_ERROR_C
++#define BN_FAST_MP_INVMOD_C
++#define BN_FAST_MP_MONTGOMERY_REDUCE_C
++#define BN_FAST_S_MP_MUL_DIGS_C
++#define BN_FAST_S_MP_MUL_HIGH_DIGS_C
++#define BN_FAST_S_MP_SQR_C
++#define BN_MP_2EXPT_C
++#define BN_MP_ABS_C
++#define BN_MP_ADD_C
++#define BN_MP_ADD_D_C
++#define BN_MP_ADDMOD_C
++#define BN_MP_AND_C
++#define BN_MP_CLAMP_C
++#define BN_MP_CLEAR_C
++#define BN_MP_CLEAR_MULTI_C
++#define BN_MP_CMP_C
++#define BN_MP_CMP_D_C
++#define BN_MP_CMP_MAG_C
++#define BN_MP_CNT_LSB_C
++#define BN_MP_COPY_C
++#define BN_MP_COUNT_BITS_C
++#define BN_MP_DIV_C
++#define BN_MP_DIV_2_C
++#define BN_MP_DIV_2D_C
++#define BN_MP_DIV_3_C
++#define BN_MP_DIV_D_C
++#define BN_MP_DR_IS_MODULUS_C
++#define BN_MP_DR_REDUCE_C
++#define BN_MP_DR_SETUP_C
++#define BN_MP_EXCH_C
++#define BN_MP_EXPT_D_C
++#define BN_MP_EXPTMOD_C
++#define BN_MP_EXPTMOD_FAST_C
++#define BN_MP_EXTEUCLID_C
++#define BN_MP_FREAD_C
++#define BN_MP_FWRITE_C
++#define BN_MP_GCD_C
++#define BN_MP_GET_INT_C
++#define BN_MP_GROW_C
++#define BN_MP_INIT_C
++#define BN_MP_INIT_COPY_C
++#define BN_MP_INIT_MULTI_C
++#define BN_MP_INIT_SET_C
++#define BN_MP_INIT_SET_INT_C
++#define BN_MP_INIT_SIZE_C
++#define BN_MP_INVMOD_C
++#define BN_MP_INVMOD_SLOW_C
++#define BN_MP_IS_SQUARE_C
++#define BN_MP_JACOBI_C
++#define BN_MP_KARATSUBA_MUL_C
++#define BN_MP_KARATSUBA_SQR_C
++#define BN_MP_LCM_C
++#define BN_MP_LSHD_C
++#define BN_MP_MOD_C
++#define BN_MP_MOD_2D_C
++#define BN_MP_MOD_D_C
++#define BN_MP_MONTGOMERY_CALC_NORMALIZATION_C
++#define BN_MP_MONTGOMERY_REDUCE_C
++#define BN_MP_MONTGOMERY_SETUP_C
++#define BN_MP_MUL_C
++#define BN_MP_MUL_2_C
++#define BN_MP_MUL_2D_C
++#define BN_MP_MUL_D_C
++#define BN_MP_MULMOD_C
++#define BN_MP_N_ROOT_C
++#define BN_MP_NEG_C
++#define BN_MP_OR_C
++#define BN_MP_PRIME_FERMAT_C
++#define BN_MP_PRIME_IS_DIVISIBLE_C
++#define BN_MP_PRIME_IS_PRIME_C
++#define BN_MP_PRIME_MILLER_RABIN_C
++#define BN_MP_PRIME_NEXT_PRIME_C
++#define BN_MP_PRIME_RABIN_MILLER_TRIALS_C
++#define BN_MP_PRIME_RANDOM_EX_C
++#define BN_MP_RADIX_SIZE_C
++#define BN_MP_RADIX_SMAP_C
++#define BN_MP_RAND_C
++#define BN_MP_READ_RADIX_C
++#define BN_MP_READ_SIGNED_BIN_C
++#define BN_MP_READ_UNSIGNED_BIN_C
++#define BN_MP_REDUCE_C
++#define BN_MP_REDUCE_2K_C
++#define BN_MP_REDUCE_2K_L_C
++#define BN_MP_REDUCE_2K_SETUP_C
++#define BN_MP_REDUCE_2K_SETUP_L_C
++#define BN_MP_REDUCE_IS_2K_C
++#define BN_MP_REDUCE_IS_2K_L_C
++#define BN_MP_REDUCE_SETUP_C
++#define BN_MP_RSHD_C
++#define BN_MP_SET_C
++#define BN_MP_SET_INT_C
++#define BN_MP_SHRINK_C
++#define BN_MP_SIGNED_BIN_SIZE_C
++#define BN_MP_SQR_C
++#define BN_MP_SQRMOD_C
++#define BN_MP_SQRT_C
++#define BN_MP_SUB_C
++#define BN_MP_SUB_D_C
++#define BN_MP_SUBMOD_C
++#define BN_MP_TO_SIGNED_BIN_C
++#define BN_MP_TO_SIGNED_BIN_N_C
++#define BN_MP_TO_UNSIGNED_BIN_C
++#define BN_MP_TO_UNSIGNED_BIN_N_C
++#define BN_MP_TOOM_MUL_C
++#define BN_MP_TOOM_SQR_C
++#define BN_MP_TORADIX_C
++#define BN_MP_TORADIX_N_C
++#define BN_MP_UNSIGNED_BIN_SIZE_C
++#define BN_MP_XOR_C
++#define BN_MP_ZERO_C
++#define BN_MP_ZERO_MULTI_C
++#define BN_PRIME_TAB_C
++#define BN_REVERSE_C
++#define BN_S_MP_ADD_C
++#define BN_S_MP_EXPTMOD_C
++#define BN_S_MP_MUL_DIGS_C
++#define BN_S_MP_MUL_HIGH_DIGS_C
++#define BN_S_MP_SQR_C
++#define BN_S_MP_SUB_C
++#define BNCORE_C
++#endif
++
++#if defined(BN_ERROR_C)
++ #define BN_MP_ERROR_TO_STRING_C
++#endif
++
++#if defined(BN_FAST_MP_INVMOD_C)
++ #define BN_MP_ISEVEN_C
++ #define BN_MP_INIT_MULTI_C
++ #define BN_MP_COPY_C
++ #define BN_MP_MOD_C
++ #define BN_MP_SET_C
++ #define BN_MP_DIV_2_C
++ #define BN_MP_ISODD_C
++ #define BN_MP_SUB_C
++ #define BN_MP_CMP_C
++ #define BN_MP_ISZERO_C
++ #define BN_MP_CMP_D_C
++ #define BN_MP_ADD_C
++ #define BN_MP_EXCH_C
++ #define BN_MP_CLEAR_MULTI_C
++#endif
++
++#if defined(BN_FAST_MP_MONTGOMERY_REDUCE_C)
++ #define BN_MP_GROW_C
++ #define BN_MP_RSHD_C
++ #define BN_MP_CLAMP_C
++ #define BN_MP_CMP_MAG_C
++ #define BN_S_MP_SUB_C
++#endif
++
++#if defined(BN_FAST_S_MP_MUL_DIGS_C)
++ #define BN_MP_GROW_C
++ #define BN_MP_CLAMP_C
++#endif
++
++#if defined(BN_FAST_S_MP_MUL_HIGH_DIGS_C)
++ #define BN_MP_GROW_C
++ #define BN_MP_CLAMP_C
++#endif
++
++#if defined(BN_FAST_S_MP_SQR_C)
++ #define BN_MP_GROW_C
++ #define BN_MP_CLAMP_C
++#endif
++
++#if defined(BN_MP_2EXPT_C)
++ #define BN_MP_ZERO_C
++ #define BN_MP_GROW_C
++#endif
++
++#if defined(BN_MP_ABS_C)
++ #define BN_MP_COPY_C
++#endif
++
++#if defined(BN_MP_ADD_C)
++ #define BN_S_MP_ADD_C
++ #define BN_MP_CMP_MAG_C
++ #define BN_S_MP_SUB_C
++#endif
++
++#if defined(BN_MP_ADD_D_C)
++ #define BN_MP_GROW_C
++ #define BN_MP_SUB_D_C
++ #define BN_MP_CLAMP_C
++#endif
++
++#if defined(BN_MP_ADDMOD_C)
++ #define BN_MP_INIT_C
++ #define BN_MP_ADD_C
++ #define BN_MP_CLEAR_C
++ #define BN_MP_MOD_C
++#endif
++
++#if defined(BN_MP_AND_C)
++ #define BN_MP_INIT_COPY_C
++ #define BN_MP_CLAMP_C
++ #define BN_MP_EXCH_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_CLAMP_C)
++#endif
++
++#if defined(BN_MP_CLEAR_C)
++#endif
++
++#if defined(BN_MP_CLEAR_MULTI_C)
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_CMP_C)
++ #define BN_MP_CMP_MAG_C
++#endif
++
++#if defined(BN_MP_CMP_D_C)
++#endif
++
++#if defined(BN_MP_CMP_MAG_C)
++#endif
++
++#if defined(BN_MP_CNT_LSB_C)
++ #define BN_MP_ISZERO_C
++#endif
++
++#if defined(BN_MP_COPY_C)
++ #define BN_MP_GROW_C
++#endif
++
++#if defined(BN_MP_COUNT_BITS_C)
++#endif
++
++#if defined(BN_MP_DIV_C)
++ #define BN_MP_ISZERO_C
++ #define BN_MP_CMP_MAG_C
++ #define BN_MP_COPY_C
++ #define BN_MP_ZERO_C
++ #define BN_MP_INIT_MULTI_C
++ #define BN_MP_SET_C
++ #define BN_MP_COUNT_BITS_C
++ #define BN_MP_ABS_C
++ #define BN_MP_MUL_2D_C
++ #define BN_MP_CMP_C
++ #define BN_MP_SUB_C
++ #define BN_MP_ADD_C
++ #define BN_MP_DIV_2D_C
++ #define BN_MP_EXCH_C
++ #define BN_MP_CLEAR_MULTI_C
++ #define BN_MP_INIT_SIZE_C
++ #define BN_MP_INIT_C
++ #define BN_MP_INIT_COPY_C
++ #define BN_MP_LSHD_C
++ #define BN_MP_RSHD_C
++ #define BN_MP_MUL_D_C
++ #define BN_MP_CLAMP_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_DIV_2_C)
++ #define BN_MP_GROW_C
++ #define BN_MP_CLAMP_C
++#endif
++
++#if defined(BN_MP_DIV_2D_C)
++ #define BN_MP_COPY_C
++ #define BN_MP_ZERO_C
++ #define BN_MP_INIT_C
++ #define BN_MP_MOD_2D_C
++ #define BN_MP_CLEAR_C
++ #define BN_MP_RSHD_C
++ #define BN_MP_CLAMP_C
++ #define BN_MP_EXCH_C
++#endif
++
++#if defined(BN_MP_DIV_3_C)
++ #define BN_MP_INIT_SIZE_C
++ #define BN_MP_CLAMP_C
++ #define BN_MP_EXCH_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_DIV_D_C)
++ #define BN_MP_ISZERO_C
++ #define BN_MP_COPY_C
++ #define BN_MP_DIV_2D_C
++ #define BN_MP_DIV_3_C
++ #define BN_MP_INIT_SIZE_C
++ #define BN_MP_CLAMP_C
++ #define BN_MP_EXCH_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_DR_IS_MODULUS_C)
++#endif
++
++#if defined(BN_MP_DR_REDUCE_C)
++ #define BN_MP_GROW_C
++ #define BN_MP_CLAMP_C
++ #define BN_MP_CMP_MAG_C
++ #define BN_S_MP_SUB_C
++#endif
++
++#if defined(BN_MP_DR_SETUP_C)
++#endif
++
++#if defined(BN_MP_EXCH_C)
++#endif
++
++#if defined(BN_MP_EXPT_D_C)
++ #define BN_MP_INIT_COPY_C
++ #define BN_MP_SET_C
++ #define BN_MP_SQR_C
++ #define BN_MP_CLEAR_C
++ #define BN_MP_MUL_C
++#endif
++
++#if defined(BN_MP_EXPTMOD_C)
++ #define BN_MP_INIT_C
++ #define BN_MP_INVMOD_C
++ #define BN_MP_CLEAR_C
++ #define BN_MP_ABS_C
++ #define BN_MP_CLEAR_MULTI_C
++ #define BN_MP_REDUCE_IS_2K_L_C
++ #define BN_S_MP_EXPTMOD_C
++ #define BN_MP_DR_IS_MODULUS_C
++ #define BN_MP_REDUCE_IS_2K_C
++ #define BN_MP_ISODD_C
++ #define BN_MP_EXPTMOD_FAST_C
++#endif
++
++#if defined(BN_MP_EXPTMOD_FAST_C)
++ #define BN_MP_COUNT_BITS_C
++ #define BN_MP_INIT_C
++ #define BN_MP_CLEAR_C
++ #define BN_MP_MONTGOMERY_SETUP_C
++ #define BN_FAST_MP_MONTGOMERY_REDUCE_C
++ #define BN_MP_MONTGOMERY_REDUCE_C
++ #define BN_MP_DR_SETUP_C
++ #define BN_MP_DR_REDUCE_C
++ #define BN_MP_REDUCE_2K_SETUP_C
++ #define BN_MP_REDUCE_2K_C
++ #define BN_MP_MONTGOMERY_CALC_NORMALIZATION_C
++ #define BN_MP_MULMOD_C
++ #define BN_MP_SET_C
++ #define BN_MP_MOD_C
++ #define BN_MP_COPY_C
++ #define BN_MP_SQR_C
++ #define BN_MP_MUL_C
++ #define BN_MP_EXCH_C
++#endif
++
++#if defined(BN_MP_EXTEUCLID_C)
++ #define BN_MP_INIT_MULTI_C
++ #define BN_MP_SET_C
++ #define BN_MP_COPY_C
++ #define BN_MP_ISZERO_C
++ #define BN_MP_DIV_C
++ #define BN_MP_MUL_C
++ #define BN_MP_SUB_C
++ #define BN_MP_NEG_C
++ #define BN_MP_EXCH_C
++ #define BN_MP_CLEAR_MULTI_C
++#endif
++
++#if defined(BN_MP_FREAD_C)
++ #define BN_MP_ZERO_C
++ #define BN_MP_S_RMAP_C
++ #define BN_MP_MUL_D_C
++ #define BN_MP_ADD_D_C
++ #define BN_MP_CMP_D_C
++#endif
++
++#if defined(BN_MP_FWRITE_C)
++ #define BN_MP_RADIX_SIZE_C
++ #define BN_MP_TORADIX_C
++#endif
++
++#if defined(BN_MP_GCD_C)
++ #define BN_MP_ISZERO_C
++ #define BN_MP_ABS_C
++ #define BN_MP_ZERO_C
++ #define BN_MP_INIT_COPY_C
++ #define BN_MP_CNT_LSB_C
++ #define BN_MP_DIV_2D_C
++ #define BN_MP_CMP_MAG_C
++ #define BN_MP_EXCH_C
++ #define BN_S_MP_SUB_C
++ #define BN_MP_MUL_2D_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_GET_INT_C)
++#endif
++
++#if defined(BN_MP_GROW_C)
++#endif
++
++#if defined(BN_MP_INIT_C)
++#endif
++
++#if defined(BN_MP_INIT_COPY_C)
++ #define BN_MP_COPY_C
++#endif
++
++#if defined(BN_MP_INIT_MULTI_C)
++ #define BN_MP_ERR_C
++ #define BN_MP_INIT_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_INIT_SET_C)
++ #define BN_MP_INIT_C
++ #define BN_MP_SET_C
++#endif
++
++#if defined(BN_MP_INIT_SET_INT_C)
++ #define BN_MP_INIT_C
++ #define BN_MP_SET_INT_C
++#endif
++
++#if defined(BN_MP_INIT_SIZE_C)
++ #define BN_MP_INIT_C
++#endif
++
++#if defined(BN_MP_INVMOD_C)
++ #define BN_MP_ISZERO_C
++ #define BN_MP_ISODD_C
++ #define BN_FAST_MP_INVMOD_C
++ #define BN_MP_INVMOD_SLOW_C
++#endif
++
++#if defined(BN_MP_INVMOD_SLOW_C)
++ #define BN_MP_ISZERO_C
++ #define BN_MP_INIT_MULTI_C
++ #define BN_MP_MOD_C
++ #define BN_MP_COPY_C
++ #define BN_MP_ISEVEN_C
++ #define BN_MP_SET_C
++ #define BN_MP_DIV_2_C
++ #define BN_MP_ISODD_C
++ #define BN_MP_ADD_C
++ #define BN_MP_SUB_C
++ #define BN_MP_CMP_C
++ #define BN_MP_CMP_D_C
++ #define BN_MP_CMP_MAG_C
++ #define BN_MP_EXCH_C
++ #define BN_MP_CLEAR_MULTI_C
++#endif
++
++#if defined(BN_MP_IS_SQUARE_C)
++ #define BN_MP_MOD_D_C
++ #define BN_MP_INIT_SET_INT_C
++ #define BN_MP_MOD_C
++ #define BN_MP_GET_INT_C
++ #define BN_MP_SQRT_C
++ #define BN_MP_SQR_C
++ #define BN_MP_CMP_MAG_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_JACOBI_C)
++ #define BN_MP_CMP_D_C
++ #define BN_MP_ISZERO_C
++ #define BN_MP_INIT_COPY_C
++ #define BN_MP_CNT_LSB_C
++ #define BN_MP_DIV_2D_C
++ #define BN_MP_MOD_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_KARATSUBA_MUL_C)
++ #define BN_MP_MUL_C
++ #define BN_MP_INIT_SIZE_C
++ #define BN_MP_CLAMP_C
++ #define BN_MP_SUB_C
++ #define BN_MP_ADD_C
++ #define BN_MP_LSHD_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_KARATSUBA_SQR_C)
++ #define BN_MP_INIT_SIZE_C
++ #define BN_MP_CLAMP_C
++ #define BN_MP_SQR_C
++ #define BN_MP_SUB_C
++ #define BN_S_MP_ADD_C
++ #define BN_MP_LSHD_C
++ #define BN_MP_ADD_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_LCM_C)
++ #define BN_MP_INIT_MULTI_C
++ #define BN_MP_GCD_C
++ #define BN_MP_CMP_MAG_C
++ #define BN_MP_DIV_C
++ #define BN_MP_MUL_C
++ #define BN_MP_CLEAR_MULTI_C
++#endif
++
++#if defined(BN_MP_LSHD_C)
++ #define BN_MP_GROW_C
++ #define BN_MP_RSHD_C
++#endif
++
++#if defined(BN_MP_MOD_C)
++ #define BN_MP_INIT_C
++ #define BN_MP_DIV_C
++ #define BN_MP_CLEAR_C
++ #define BN_MP_ADD_C
++ #define BN_MP_EXCH_C
++#endif
++
++#if defined(BN_MP_MOD_2D_C)
++ #define BN_MP_ZERO_C
++ #define BN_MP_COPY_C
++ #define BN_MP_CLAMP_C
++#endif
++
++#if defined(BN_MP_MOD_D_C)
++ #define BN_MP_DIV_D_C
++#endif
++
++#if defined(BN_MP_MONTGOMERY_CALC_NORMALIZATION_C)
++ #define BN_MP_COUNT_BITS_C
++ #define BN_MP_2EXPT_C
++ #define BN_MP_SET_C
++ #define BN_MP_MUL_2_C
++ #define BN_MP_CMP_MAG_C
++ #define BN_S_MP_SUB_C
++#endif
++
++#if defined(BN_MP_MONTGOMERY_REDUCE_C)
++ #define BN_FAST_MP_MONTGOMERY_REDUCE_C
++ #define BN_MP_GROW_C
++ #define BN_MP_CLAMP_C
++ #define BN_MP_RSHD_C
++ #define BN_MP_CMP_MAG_C
++ #define BN_S_MP_SUB_C
++#endif
++
++#if defined(BN_MP_MONTGOMERY_SETUP_C)
++#endif
++
++#if defined(BN_MP_MUL_C)
++ #define BN_MP_TOOM_MUL_C
++ #define BN_MP_KARATSUBA_MUL_C
++ #define BN_FAST_S_MP_MUL_DIGS_C
++ #define BN_S_MP_MUL_C
++ #define BN_S_MP_MUL_DIGS_C
++#endif
++
++#if defined(BN_MP_MUL_2_C)
++ #define BN_MP_GROW_C
++#endif
++
++#if defined(BN_MP_MUL_2D_C)
++ #define BN_MP_COPY_C
++ #define BN_MP_GROW_C
++ #define BN_MP_LSHD_C
++ #define BN_MP_CLAMP_C
++#endif
++
++#if defined(BN_MP_MUL_D_C)
++ #define BN_MP_GROW_C
++ #define BN_MP_CLAMP_C
++#endif
++
++#if defined(BN_MP_MULMOD_C)
++ #define BN_MP_INIT_C
++ #define BN_MP_MUL_C
++ #define BN_MP_CLEAR_C
++ #define BN_MP_MOD_C
++#endif
++
++#if defined(BN_MP_N_ROOT_C)
++ #define BN_MP_INIT_C
++ #define BN_MP_SET_C
++ #define BN_MP_COPY_C
++ #define BN_MP_EXPT_D_C
++ #define BN_MP_MUL_C
++ #define BN_MP_SUB_C
++ #define BN_MP_MUL_D_C
++ #define BN_MP_DIV_C
++ #define BN_MP_CMP_C
++ #define BN_MP_SUB_D_C
++ #define BN_MP_EXCH_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_NEG_C)
++ #define BN_MP_COPY_C
++ #define BN_MP_ISZERO_C
++#endif
++
++#if defined(BN_MP_OR_C)
++ #define BN_MP_INIT_COPY_C
++ #define BN_MP_CLAMP_C
++ #define BN_MP_EXCH_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_PRIME_FERMAT_C)
++ #define BN_MP_CMP_D_C
++ #define BN_MP_INIT_C
++ #define BN_MP_EXPTMOD_C
++ #define BN_MP_CMP_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_PRIME_IS_DIVISIBLE_C)
++ #define BN_MP_MOD_D_C
++#endif
++
++#if defined(BN_MP_PRIME_IS_PRIME_C)
++ #define BN_MP_CMP_D_C
++ #define BN_MP_PRIME_IS_DIVISIBLE_C
++ #define BN_MP_INIT_C
++ #define BN_MP_SET_C
++ #define BN_MP_PRIME_MILLER_RABIN_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_PRIME_MILLER_RABIN_C)
++ #define BN_MP_CMP_D_C
++ #define BN_MP_INIT_COPY_C
++ #define BN_MP_SUB_D_C
++ #define BN_MP_CNT_LSB_C
++ #define BN_MP_DIV_2D_C
++ #define BN_MP_EXPTMOD_C
++ #define BN_MP_CMP_C
++ #define BN_MP_SQRMOD_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_PRIME_NEXT_PRIME_C)
++ #define BN_MP_CMP_D_C
++ #define BN_MP_SET_C
++ #define BN_MP_SUB_D_C
++ #define BN_MP_ISEVEN_C
++ #define BN_MP_MOD_D_C
++ #define BN_MP_INIT_C
++ #define BN_MP_ADD_D_C
++ #define BN_MP_PRIME_MILLER_RABIN_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_PRIME_RABIN_MILLER_TRIALS_C)
++#endif
++
++#if defined(BN_MP_PRIME_RANDOM_EX_C)
++ #define BN_MP_READ_UNSIGNED_BIN_C
++ #define BN_MP_PRIME_IS_PRIME_C
++ #define BN_MP_SUB_D_C
++ #define BN_MP_DIV_2_C
++ #define BN_MP_MUL_2_C
++ #define BN_MP_ADD_D_C
++#endif
++
++#if defined(BN_MP_RADIX_SIZE_C)
++ #define BN_MP_COUNT_BITS_C
++ #define BN_MP_INIT_COPY_C
++ #define BN_MP_ISZERO_C
++ #define BN_MP_DIV_D_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_RADIX_SMAP_C)
++ #define BN_MP_S_RMAP_C
++#endif
++
++#if defined(BN_MP_RAND_C)
++ #define BN_MP_ZERO_C
++ #define BN_MP_ADD_D_C
++ #define BN_MP_LSHD_C
++#endif
++
++#if defined(BN_MP_READ_RADIX_C)
++ #define BN_MP_ZERO_C
++ #define BN_MP_S_RMAP_C
++ #define BN_MP_RADIX_SMAP_C
++ #define BN_MP_MUL_D_C
++ #define BN_MP_ADD_D_C
++ #define BN_MP_ISZERO_C
++#endif
++
++#if defined(BN_MP_READ_SIGNED_BIN_C)
++ #define BN_MP_READ_UNSIGNED_BIN_C
++#endif
++
++#if defined(BN_MP_READ_UNSIGNED_BIN_C)
++ #define BN_MP_GROW_C
++ #define BN_MP_ZERO_C
++ #define BN_MP_MUL_2D_C
++ #define BN_MP_CLAMP_C
++#endif
++
++#if defined(BN_MP_REDUCE_C)
++ #define BN_MP_REDUCE_SETUP_C
++ #define BN_MP_INIT_COPY_C
++ #define BN_MP_RSHD_C
++ #define BN_MP_MUL_C
++ #define BN_S_MP_MUL_HIGH_DIGS_C
++ #define BN_FAST_S_MP_MUL_HIGH_DIGS_C
++ #define BN_MP_MOD_2D_C
++ #define BN_S_MP_MUL_DIGS_C
++ #define BN_MP_SUB_C
++ #define BN_MP_CMP_D_C
++ #define BN_MP_SET_C
++ #define BN_MP_LSHD_C
++ #define BN_MP_ADD_C
++ #define BN_MP_CMP_C
++ #define BN_S_MP_SUB_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_REDUCE_2K_C)
++ #define BN_MP_INIT_C
++ #define BN_MP_COUNT_BITS_C
++ #define BN_MP_DIV_2D_C
++ #define BN_MP_MUL_D_C
++ #define BN_S_MP_ADD_C
++ #define BN_MP_CMP_MAG_C
++ #define BN_S_MP_SUB_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_REDUCE_2K_L_C)
++ #define BN_MP_INIT_C
++ #define BN_MP_COUNT_BITS_C
++ #define BN_MP_DIV_2D_C
++ #define BN_MP_MUL_C
++ #define BN_S_MP_ADD_C
++ #define BN_MP_CMP_MAG_C
++ #define BN_S_MP_SUB_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_REDUCE_2K_SETUP_C)
++ #define BN_MP_INIT_C
++ #define BN_MP_COUNT_BITS_C
++ #define BN_MP_2EXPT_C
++ #define BN_MP_CLEAR_C
++ #define BN_S_MP_SUB_C
++#endif
++
++#if defined(BN_MP_REDUCE_2K_SETUP_L_C)
++ #define BN_MP_INIT_C
++ #define BN_MP_2EXPT_C
++ #define BN_MP_COUNT_BITS_C
++ #define BN_S_MP_SUB_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_REDUCE_IS_2K_C)
++ #define BN_MP_REDUCE_2K_C
++ #define BN_MP_COUNT_BITS_C
++#endif
++
++#if defined(BN_MP_REDUCE_IS_2K_L_C)
++#endif
++
++#if defined(BN_MP_REDUCE_SETUP_C)
++ #define BN_MP_2EXPT_C
++ #define BN_MP_DIV_C
++#endif
++
++#if defined(BN_MP_RSHD_C)
++ #define BN_MP_ZERO_C
++#endif
++
++#if defined(BN_MP_SET_C)
++ #define BN_MP_ZERO_C
++#endif
++
++#if defined(BN_MP_SET_INT_C)
++ #define BN_MP_ZERO_C
++ #define BN_MP_MUL_2D_C
++ #define BN_MP_CLAMP_C
++#endif
++
++#if defined(BN_MP_SHRINK_C)
++#endif
++
++#if defined(BN_MP_SIGNED_BIN_SIZE_C)
++ #define BN_MP_UNSIGNED_BIN_SIZE_C
++#endif
++
++#if defined(BN_MP_SQR_C)
++ #define BN_MP_TOOM_SQR_C
++ #define BN_MP_KARATSUBA_SQR_C
++ #define BN_FAST_S_MP_SQR_C
++ #define BN_S_MP_SQR_C
++#endif
++
++#if defined(BN_MP_SQRMOD_C)
++ #define BN_MP_INIT_C
++ #define BN_MP_SQR_C
++ #define BN_MP_CLEAR_C
++ #define BN_MP_MOD_C
++#endif
++
++#if defined(BN_MP_SQRT_C)
++ #define BN_MP_N_ROOT_C
++ #define BN_MP_ISZERO_C
++ #define BN_MP_ZERO_C
++ #define BN_MP_INIT_COPY_C
++ #define BN_MP_RSHD_C
++ #define BN_MP_DIV_C
++ #define BN_MP_ADD_C
++ #define BN_MP_DIV_2_C
++ #define BN_MP_CMP_MAG_C
++ #define BN_MP_EXCH_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_SUB_C)
++ #define BN_S_MP_ADD_C
++ #define BN_MP_CMP_MAG_C
++ #define BN_S_MP_SUB_C
++#endif
++
++#if defined(BN_MP_SUB_D_C)
++ #define BN_MP_GROW_C
++ #define BN_MP_ADD_D_C
++ #define BN_MP_CLAMP_C
++#endif
++
++#if defined(BN_MP_SUBMOD_C)
++ #define BN_MP_INIT_C
++ #define BN_MP_SUB_C
++ #define BN_MP_CLEAR_C
++ #define BN_MP_MOD_C
++#endif
++
++#if defined(BN_MP_TO_SIGNED_BIN_C)
++ #define BN_MP_TO_UNSIGNED_BIN_C
++#endif
++
++#if defined(BN_MP_TO_SIGNED_BIN_N_C)
++ #define BN_MP_SIGNED_BIN_SIZE_C
++ #define BN_MP_TO_SIGNED_BIN_C
++#endif
++
++#if defined(BN_MP_TO_UNSIGNED_BIN_C)
++ #define BN_MP_INIT_COPY_C
++ #define BN_MP_ISZERO_C
++ #define BN_MP_DIV_2D_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_TO_UNSIGNED_BIN_N_C)
++ #define BN_MP_UNSIGNED_BIN_SIZE_C
++ #define BN_MP_TO_UNSIGNED_BIN_C
++#endif
++
++#if defined(BN_MP_TOOM_MUL_C)
++ #define BN_MP_INIT_MULTI_C
++ #define BN_MP_MOD_2D_C
++ #define BN_MP_COPY_C
++ #define BN_MP_RSHD_C
++ #define BN_MP_MUL_C
++ #define BN_MP_MUL_2_C
++ #define BN_MP_ADD_C
++ #define BN_MP_SUB_C
++ #define BN_MP_DIV_2_C
++ #define BN_MP_MUL_2D_C
++ #define BN_MP_MUL_D_C
++ #define BN_MP_DIV_3_C
++ #define BN_MP_LSHD_C
++ #define BN_MP_CLEAR_MULTI_C
++#endif
++
++#if defined(BN_MP_TOOM_SQR_C)
++ #define BN_MP_INIT_MULTI_C
++ #define BN_MP_MOD_2D_C
++ #define BN_MP_COPY_C
++ #define BN_MP_RSHD_C
++ #define BN_MP_SQR_C
++ #define BN_MP_MUL_2_C
++ #define BN_MP_ADD_C
++ #define BN_MP_SUB_C
++ #define BN_MP_DIV_2_C
++ #define BN_MP_MUL_2D_C
++ #define BN_MP_MUL_D_C
++ #define BN_MP_DIV_3_C
++ #define BN_MP_LSHD_C
++ #define BN_MP_CLEAR_MULTI_C
++#endif
++
++#if defined(BN_MP_TORADIX_C)
++ #define BN_MP_ISZERO_C
++ #define BN_MP_INIT_COPY_C
++ #define BN_MP_DIV_D_C
++ #define BN_MP_CLEAR_C
++ #define BN_MP_S_RMAP_C
++#endif
++
++#if defined(BN_MP_TORADIX_N_C)
++ #define BN_MP_ISZERO_C
++ #define BN_MP_INIT_COPY_C
++ #define BN_MP_DIV_D_C
++ #define BN_MP_CLEAR_C
++ #define BN_MP_S_RMAP_C
++#endif
++
++#if defined(BN_MP_UNSIGNED_BIN_SIZE_C)
++ #define BN_MP_COUNT_BITS_C
++#endif
++
++#if defined(BN_MP_XOR_C)
++ #define BN_MP_INIT_COPY_C
++ #define BN_MP_CLAMP_C
++ #define BN_MP_EXCH_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_MP_ZERO_C)
++#endif
++
++#if defined(BN_PRIME_TAB_C)
++#endif
++
++#if defined(BN_REVERSE_C)
++#endif
++
++#if defined(BN_S_MP_ADD_C)
++ #define BN_MP_GROW_C
++ #define BN_MP_CLAMP_C
++#endif
++
++#if defined(BN_S_MP_EXPTMOD_C)
++ #define BN_MP_COUNT_BITS_C
++ #define BN_MP_INIT_C
++ #define BN_MP_CLEAR_C
++ #define BN_MP_REDUCE_SETUP_C
++ #define BN_MP_REDUCE_C
++ #define BN_MP_REDUCE_2K_SETUP_L_C
++ #define BN_MP_REDUCE_2K_L_C
++ #define BN_MP_MOD_C
++ #define BN_MP_COPY_C
++ #define BN_MP_SQR_C
++ #define BN_MP_MUL_C
++ #define BN_MP_SET_C
++ #define BN_MP_EXCH_C
++#endif
++
++#if defined(BN_S_MP_MUL_DIGS_C)
++ #define BN_FAST_S_MP_MUL_DIGS_C
++ #define BN_MP_INIT_SIZE_C
++ #define BN_MP_CLAMP_C
++ #define BN_MP_EXCH_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_S_MP_MUL_HIGH_DIGS_C)
++ #define BN_FAST_S_MP_MUL_HIGH_DIGS_C
++ #define BN_MP_INIT_SIZE_C
++ #define BN_MP_CLAMP_C
++ #define BN_MP_EXCH_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_S_MP_SQR_C)
++ #define BN_MP_INIT_SIZE_C
++ #define BN_MP_CLAMP_C
++ #define BN_MP_EXCH_C
++ #define BN_MP_CLEAR_C
++#endif
++
++#if defined(BN_S_MP_SUB_C)
++ #define BN_MP_GROW_C
++ #define BN_MP_CLAMP_C
++#endif
++
++#if defined(BNCORE_C)
++#endif
++
++#ifdef LTM3
++#define LTM_LAST
++#endif
++#include <tommath_superclass.h>
++#include <tommath_class.h>
++#else
++#define LTM_LAST
++#endif
diff --git a/security/heimdal/patches/patch-lib_hcrypto_libtommath_tommath_superclass.h b/security/heimdal/patches/patch-lib_hcrypto_libtommath_tommath_superclass.h
new file mode 100644
index 00000000000..c90792e6719
--- /dev/null
+++ b/security/heimdal/patches/patch-lib_hcrypto_libtommath_tommath_superclass.h
@@ -0,0 +1,77 @@
+$NetBSD: patch-lib_hcrypto_libtommath_tommath_superclass.h,v 1.1 2011/09/15 13:01:14 hans Exp $
+
+--- lib/hcrypto/libtommath/tommath_superclass.h.orig 2011-09-15 09:31:23.191396242 +0200
++++ lib/hcrypto/libtommath/tommath_superclass.h 2011-09-15 09:32:22.227978670 +0200
+@@ -0,0 +1,72 @@
++/* super class file for PK algos */
++
++/* default ... include all MPI */
++#define LTM_ALL
++
++/* RSA only (does not support DH/DSA/ECC) */
++/* #define SC_RSA_1 */
++
++/* For reference.... On an Athlon64 optimizing for speed...
++
++ LTM's mpi.o with all functions [striped] is 142KiB in size.
++
++*/
++
++/* Works for RSA only, mpi.o is 68KiB */
++#ifdef SC_RSA_1
++ #define BN_MP_SHRINK_C
++ #define BN_MP_LCM_C
++ #define BN_MP_PRIME_RANDOM_EX_C
++ #define BN_MP_INVMOD_C
++ #define BN_MP_GCD_C
++ #define BN_MP_MOD_C
++ #define BN_MP_MULMOD_C
++ #define BN_MP_ADDMOD_C
++ #define BN_MP_EXPTMOD_C
++ #define BN_MP_SET_INT_C
++ #define BN_MP_INIT_MULTI_C
++ #define BN_MP_CLEAR_MULTI_C
++ #define BN_MP_UNSIGNED_BIN_SIZE_C
++ #define BN_MP_TO_UNSIGNED_BIN_C
++ #define BN_MP_MOD_D_C
++ #define BN_MP_PRIME_RABIN_MILLER_TRIALS_C
++ #define BN_REVERSE_C
++ #define BN_PRIME_TAB_C
++
++ /* other modifiers */
++ #define BN_MP_DIV_SMALL /* Slower division, not critical */
++
++ /* here we are on the last pass so we turn things off. The functions classes are still there
++ * but we remove them specifically from the build. This also invokes tweaks in functions
++ * like removing support for even moduli, etc...
++ */
++#ifdef LTM_LAST
++ #undef BN_MP_TOOM_MUL_C
++ #undef BN_MP_TOOM_SQR_C
++ #undef BN_MP_KARATSUBA_MUL_C
++ #undef BN_MP_KARATSUBA_SQR_C
++ #undef BN_MP_REDUCE_C
++ #undef BN_MP_REDUCE_SETUP_C
++ #undef BN_MP_DR_IS_MODULUS_C
++ #undef BN_MP_DR_SETUP_C
++ #undef BN_MP_DR_REDUCE_C
++ #undef BN_MP_REDUCE_IS_2K_C
++ #undef BN_MP_REDUCE_2K_SETUP_C
++ #undef BN_MP_REDUCE_2K_C
++ #undef BN_S_MP_EXPTMOD_C
++ #undef BN_MP_DIV_3_C
++ #undef BN_S_MP_MUL_HIGH_DIGS_C
++ #undef BN_FAST_S_MP_MUL_HIGH_DIGS_C
++ #undef BN_FAST_MP_INVMOD_C
++
++ /* To safely undefine these you have to make sure your RSA key won't exceed the Comba threshold
++ * which is roughly 255 digits [7140 bits for 32-bit machines, 15300 bits for 64-bit machines]
++ * which means roughly speaking you can handle upto 2536-bit RSA keys with these defined without
++ * trouble.
++ */
++ #undef BN_S_MP_MUL_DIGS_C
++ #undef BN_S_MP_SQR_C
++ #undef BN_MP_MONTGOMERY_REDUCE_C
++#endif
++
++#endif