SUBDIRS = docs gas masm mwerks tests
SUFFIXES = .s
+
.s.lo:
$(LTCOMPILE) -c -o $@ `test -f $< || echo '$(srcdir)/'`$<
])
if test "$bc_cv_prog_INTEL_CC" = yes; then
if test "$ac_enable_debug" != yes; then
+ BEECRYPT_CFLAGS_REM([-g])
CFLAGS="$CFLAGS -O3"
case $bc_target_cpu in
i586 | pentium | pentium-mmx)
*) bc_cv_asm_gsym_prefix="" ;;
esac
])
- AC_SUBST(ASM_GSYM_PREFIX,$bc_cv_asm_sym_prefix)
+ AC_SUBST(ASM_GSYM_PREFIX,$bc_cv_asm_gsym_prefix)
])
/*
- * beecrypt.h
- *
- * BeeCrypt library hooks & stubs, header
- *
* Copyright (c) 1999, 2000, 2001, 2002 Virtual Unlimited B.V.
*
* This library is free software; you can redistribute it and/or
*
*/
+/*!\file beecrypt.h
+ * \brief BeeCrypt API, headers.
+ *
+ * These API functions provide an abstract way for using most of
+ * the various algorithms implemented by the library.
+ *
+ * \author Bob Deblier <bob.deblier@pandora.be>
+ * \ingroup ES_m PRNG_m HASH_m HMAC_m BC_m
+ */
+
+
#ifndef _BEECRYPT_H
#define _BEECRYPT_H
/*!\file blowfish.c
* \brief Blowfish block cipher.
- *
+ *
* For more information on this blockcipher, see:
* "Applied Cryptography", second edition
* Bruce Schneier
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
- *
*/
-
+
/*!\file dsa.c
* \brief Digital Signature Algorithm, as specified by NIST FIPS 186.
*
* \author Bob Deblier <bob.deblier@pandora.be>
* \ingroup DL_m DL_dsa_m
*/
+
#ifndef _DSA_H
#define _DSA_H
*
* For more information on this algorithm, see:
* "Handbook of Applied Cryptography"
- * 11.5.2 "The ElGamal signature scheme", p. 454-459
+ * 11.5.2: "The ElGamal signature scheme", p. 454-459
*
* Two of the signature variants in Note 11.70 are described.
*
dnl License along with this library; if not, write to the Free Software
dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ifelse(substr(ASM_OS,0,5),linux,`
+define(USE_NUMERIC_REGISTERS)
+')
+
ifelse(substr(ASM_OS,0,3),aix,`
+define(USE_NUMERIC_REGISTERS)
undefine(`C_FUNCTION_BEGIN')
define(C_FUNCTION_BEGIN,`
.toc
L$1:
.tc $1[TC],$1[RW]
')
-
.machine "ppc"
-
- .set r0,0
- .set r1,1
- .set r2,2
- .set r3,3
- .set r4,4
- .set r5,5
- .set r6,6
- .set r7,7
- .set r8,8
- .set r9,9
- .set r10,10
- .set r11,11
- .set r12,12
- .set r13,13
- .set r14,14
- .set r15,15
- .set r16,16
- .set r17,17
- .set r18,18
- .set r19,19
- .set r20,20
- .set r21,21
- .set r22,22
- .set r23,23
- .set r24,24
- .set r25,25
- .set r26,26
- .set r27,27
- .set r28,28
- .set r29,29
- .set r30,30
- .set r31,31
',`
define(LOAD_ADDRESS,`
lis $2,$1@ha
')
define(EXTERNAL_VARIABLE)
')
+
+ifdef(`USE_NUMERIC_REGISTERS',`
+define(r0,0)
+define(r1,1)
+define(r2,2)
+define(r3,3)
+define(r4,4)
+define(r5,5)
+define(r6,6)
+define(r7,7)
+define(r8,8)
+define(r9,9)
+define(r10,10)
+define(r11,11)
+define(r12,12)
+define(r13,13)
+define(r14,14)
+define(r15,15)
+define(r16,16)
+define(r17,17)
+define(r18,18)
+define(r19,19)
+define(r20,20)
+define(r21,21)
+define(r22,22)
+define(r23,23)
+define(r24,24)
+define(r25,25)
+define(r26,26)
+define(r27,27)
+define(r28,28)
+define(r29,29)
+define(r30,30)
+define(r31,31)
+')
dnl License along with this library; if not, write to the Free Software
dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ifelse(substr(ASM_ARCH,0,6),athlon,`
+define(USE_BSWAP)
+')
+ifelse(substr(ASM_ARCHi,0,7),pentium,`
+define(USE_BSWAP)
+')
+ifelse(ASM_ARCH,i586,`
+define(USE_BSWAP)
+')
+ifelse(ASM_ARCH,i686,`
+define(USE_BSWAP)
+')
ifelse(ASM_ARCH,pentium4,`
- define(`USE_SSE2')
+define(USE_BSWAP)
+define(USE_SSE2)
')
return -1;
if (hash->update(param, kxi, hash->blocksize))
return -1;
+
return 0;
}
*/
/*!\file mpbarrett.h
- * \brief Multi-precision integer routines using Barrett modular reduction, headers.
+ * \brief Multi-precision integer routines using Barrett modular reduction, headers.
* \author Bob Deblier <bob.deblier@pandora.be>
* \ingroup MP_m
*/
# endif
# endif
#endif
- uint32_t state[N+1];
- uint32_t left;
+ uint32_t state[N+1];
+ uint32_t left;
/*@kept@*/
- uint32_t* nextw;
+ uint32_t* nextw;
} mtprngParam;
#ifdef __cplusplus
/* if p <= q, perform a swap to make p larger than q */
if (mple(pqsize, kp->p.modl, kp->q.modl))
{
- /*@-sizeoftype@*/
memcpy(&r, &kp->q, sizeof(r));
memcpy(&kp->q, &kp->p, sizeof(kp->q));
memcpy(&kp->p, &r, sizeof(kp->p));
- /*@=sizeoftype@*/
}
mpbzero(&r);
if (mple(pqsize, kp->p.modl, r.modl))
{
mpbfree(&kp->q);
- /*@-sizeoftype@*/
memcpy(&kp->q, &kp->p, sizeof(kp->q));
memcpy(&kp->p, &r, sizeof(kp->p));
- /*@=sizeoftype@*/
mpbzero(&r);
newn = 1;
}
else if (mple(pqsize, kp->q.modl, r.modl))
{
mpbfree(&kp->q);
- /*@-sizeoftype@*/
memcpy(&kp->q, &r, sizeof(kp->q));
- /*@=sizeoftype@*/
mpbzero(&r);
newn = 1;
}
# endif
#endif
-#ifdef __GNUC__
+#if defined(__GNUC__)
+# if defined(OPTIMIZE_I586) || defined(OPTIMIZE_I686)
+# define ASM_SHA1PROCESS
+# endif
+#endif
+
+#if defined(__INTEL_COMPILER)
# if defined(OPTIMIZE_I586) || defined(OPTIMIZE_I686)
# define ASM_SHA1PROCESS
# endif
#else
w = p->data;
t = 16;
- while (t--) {
+ while (t--)
+ {
temp = swapu32(*w);
*(w++) = temp;
}
#endif
t = 48;
- while (t--) {
+ while (t--)
+ {
temp = sig1(w[-2]) + w[-7] + sig0(w[-15]) + w[-16];
*(w++) = temp;
}