diff options
author | Diego Elio Pettenò <flameeyes@gentoo.org> | 2011-09-22 14:21:04 +0000 |
---|---|---|
committer | Diego Elio Pettenò <flameeyes@gentoo.org> | 2011-09-22 14:21:04 +0000 |
commit | c6bef7757fddd7689ee58a631d80860f4f59fde2 (patch) | |
tree | bbc4c100bc6345957fd801092fe8759dfd418c15 /dev-libs | |
parent | Use libtool's macro to identify whether to use underscores in names or not. C... (diff) | |
download | historical-c6bef7757fddd7689ee58a631d80860f4f59fde2.tar.gz historical-c6bef7757fddd7689ee58a631d80860f4f59fde2.tar.bz2 historical-c6bef7757fddd7689ee58a631d80860f4f59fde2.zip |
Remove betas, so that we can remove the (too big) file in FILESDIR.
Package-Manager: portage-2.2.0_alpha59/cvs/Linux x86_64
Diffstat (limited to 'dev-libs')
-rw-r--r-- | dev-libs/libgcrypt/ChangeLog | 7 | ||||
-rw-r--r-- | dev-libs/libgcrypt/Manifest | 12 | ||||
-rw-r--r-- | dev-libs/libgcrypt/files/libgcrypt-1.5.0_beta1-ctr.patch | 750 | ||||
-rw-r--r-- | dev-libs/libgcrypt/libgcrypt-1.5.0_beta1-r1.ebuild | 37 | ||||
-rw-r--r-- | dev-libs/libgcrypt/libgcrypt-1.5.0_beta1-r2.ebuild | 43 |
5 files changed, 10 insertions, 839 deletions
diff --git a/dev-libs/libgcrypt/ChangeLog b/dev-libs/libgcrypt/ChangeLog index 95fa68a5800f..59112756adff 100644 --- a/dev-libs/libgcrypt/ChangeLog +++ b/dev-libs/libgcrypt/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for dev-libs/libgcrypt # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/libgcrypt/ChangeLog,v 1.150 2011/09/22 14:19:48 flameeyes Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-libs/libgcrypt/ChangeLog,v 1.151 2011/09/22 14:21:04 flameeyes Exp $ + + 22 Sep 2011; Diego E. Pettenò <flameeyes@gentoo.org> + -libgcrypt-1.5.0_beta1-r1.ebuild, -libgcrypt-1.5.0_beta1-r2.ebuild, + -files/libgcrypt-1.5.0_beta1-ctr.patch: + Remove betas, so that we can remove the (too big) file in FILESDIR. 22 Sep 2011; Diego E. Pettenò <flameeyes@gentoo.org> libgcrypt-1.5.0.ebuild, +files/libgcrypt-1.5.0-uscore.patch: diff --git a/dev-libs/libgcrypt/Manifest b/dev-libs/libgcrypt/Manifest index 8d2efab0da2d..a61d2c3056a5 100644 --- a/dev-libs/libgcrypt/Manifest +++ b/dev-libs/libgcrypt/Manifest @@ -2,21 +2,17 @@ Hash: SHA1 AUX libgcrypt-1.5.0-uscore.patch 981 RMD160 5993a5da17db5c557a141490144027d3d6ffef3d SHA1 c0559284fcd8885c38c9b5c2bd71eac028dc9b02 SHA256 4cbb34cebce02531b9b940494b78b7186b2fd05b802866d9ecb42d478e88e845 -AUX libgcrypt-1.5.0_beta1-ctr.patch 26861 RMD160 891afbd0bd0f0998114921eaf22c81e08357b7ad SHA1 d3d4faba496a0210e862bb23b009d7a82205164e SHA256 c45cba5c60a70d1ffd0595463fbb86cacf73662191b2faa5a643ac9f2600abb0 DIST libgcrypt-1.4.6.tar.bz2 1151877 RMD160 d4d720c4bfe80f0799b2cbdbbb49d304e3195049 SHA1 445b9e158aaf91e24eae3d1040c6213e9d9f5ba6 SHA256 3e4b30da6b357b565333d0222133b64a0414be99ba72733081165c8ea9bc6b85 -DIST libgcrypt-1.5.0-beta1.tar.bz2 1172939 RMD160 de82f94a1f7fd3b8460fa857edc4ab53ebb7cb27 SHA1 fbdbf8cde578835b4e492f34bd83f91deb97a2af SHA256 06842acbc36e3e8f427a56bd794f2e4f958f44e2ad2f41573db23a68ad050be4 DIST libgcrypt-1.5.0.tar.bz2 1433506 RMD160 f01e8198dcc379ff2fa5e8d3ac39e7b32fc41dad SHA1 3e776d44375dc1a710560b98ae8437d5da6e32cf SHA256 4b62fc516004940a0571025401a0581d49199f1a76dfb5ce6fd63f50db8173fa EBUILD libgcrypt-1.4.6-r1.ebuild 1167 RMD160 add8b9922a69f0c631b4c7d08049c8d379cc5e18 SHA1 92a52594ebf4524af911ad7b3e75fbd50df924f8 SHA256 0d9c4e0a4a0a96304499a18706fd9860c7001417eec1cee064feaee95d0abf89 EBUILD libgcrypt-1.4.6.ebuild 1126 RMD160 bf89e3914988bbfb3e917441cf9a32945b950d71 SHA1 f8445a80a7916f4038860d122afc031fbc84f952 SHA256 e2bf303262e08375c82d10c921c642bfe9383bf3c5c64a7fd20e1d4e704ecf02 EBUILD libgcrypt-1.5.0.ebuild 1144 RMD160 c5323eaea9740c04a50bd1344187b030b9873b38 SHA1 e80154a6fac274bdf0c3247bcbddc5266dcdc076 SHA256 a82ce4bb1484fdb671e78fd8e1a24336442aebab447380e88656152955e51a0a -EBUILD libgcrypt-1.5.0_beta1-r1.ebuild 1152 RMD160 d110e58e96c5b316c8f91855ef903c572cd842da SHA1 f63c83f1f515c2e5ff4ad4ce4f1cbbc29cd96e41 SHA256 489a81252e453a3791715ec3a79f0e3a74eba5a21a7ba3ea15ba12fec2ca5ab2 -EBUILD libgcrypt-1.5.0_beta1-r2.ebuild 1226 RMD160 430727c835ab5cccad7664c8b5e9b75a6cfd9811 SHA1 76bada7bb3af2d21dea7a2bf6997f436cd9f31f2 SHA256 8954703994a8dc3fbc6664a1e8bacbaf5c58ae48f2df02f6b672d4b5a7f3bfe7 -MISC ChangeLog 21695 RMD160 9ad1ba78323fc6b421ed062eb6e290670cf034f3 SHA1 7c5c783d6ff72f4909931cf64d34cd83d1b4b244 SHA256 18653123175220d9996232f4919fd28c5115218f5c573e6537d6d070e163f2e3 +MISC ChangeLog 21934 RMD160 c07a0058d5bee9d6fb64b6c052cdd2f16976989c SHA1 82bf542958ef487b09bf6db7488deb77197c0895 SHA256 1010cb9e0afed38d168a60aae6f0611442e416ec9a0c1b44056349cec0586450 MISC metadata.xml 160 RMD160 61ea9f9370afee3db802f40f7c6b2edd2f5347cf SHA1 51cf29a3589cff823294704e225b0de18f65e6dd SHA256 7419f4e73ddd07284403525f1380824fc68280cad69e2dfae0645ad52b33ef10 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (GNU/Linux) -iEYEARECAAYFAk57RAcACgkQAiZjviIA2XhOUwCdEWJl8JvckyWRLGcX+Wq2gv43 -vMIAoNRMRov07xqo/gTJcu9NAT8RDDov -=+ZTN +iEYEARECAAYFAk57RFMACgkQAiZjviIA2XhJ4QCg8TZH4APGqOsbzvE2b2tOlqDO +AT4AnRTfmi8t2utuB3VdoPd/PdqEtG19 +=otbD -----END PGP SIGNATURE----- diff --git a/dev-libs/libgcrypt/files/libgcrypt-1.5.0_beta1-ctr.patch b/dev-libs/libgcrypt/files/libgcrypt-1.5.0_beta1-ctr.patch deleted file mode 100644 index 840d2eb9c6c5..000000000000 --- a/dev-libs/libgcrypt/files/libgcrypt-1.5.0_beta1-ctr.patch +++ /dev/null @@ -1,750 +0,0 @@ -http://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commitdiff;h=2674140cdfdc59ce5ad0238177da1542f5df6e00 -http://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgcrypt.git;a=commitdiff;h=3c18377a55085faf4df745034056bac53565effa - ---- cipher/cipher.c -+++ cipher/cipher.c -@@ -190,6 +190,9 @@ - void (*cbc_dec)(void *context, unsigned char *iv, - void *outbuf_arg, const void *inbuf_arg, - unsigned int nblocks); -+ void (*ctr_enc)(void *context, unsigned char *iv, -+ void *outbuf_arg, const void *inbuf_arg, -+ unsigned int nblocks); - } bulk; - - -@@ -209,12 +212,16 @@ - unsigned char iv[MAX_BLOCKSIZE]; - } u_iv; - -+ /* The counter for CTR mode. This field is also used by AESWRAP and -+ thus we can't use the U_IV union. */ -+ union { -+ cipher_context_alignment_t iv_align; -+ unsigned char ctr[MAX_BLOCKSIZE]; -+ } u_ctr; -+ - unsigned char lastiv[MAX_BLOCKSIZE]; - int unused; /* Number of unused bytes in the IV. */ - -- unsigned char ctr[MAX_BLOCKSIZE]; /* For Counter (CTR) mode. */ -- -- - /* What follows are two contexts of the cipher in use. The first - one needs to be aligned well enough for the cipher operation - whereas the second one is a copy created by cipher_setkey and -@@ -814,6 +821,7 @@ - h->bulk.cfb_dec = _gcry_aes_cfb_dec; - h->bulk.cbc_enc = _gcry_aes_cbc_enc; - h->bulk.cbc_dec = _gcry_aes_cbc_dec; -+ h->bulk.ctr_enc = _gcry_aes_ctr_enc; - break; - #endif /*USE_AES*/ - -@@ -936,7 +944,7 @@ - memset (&c->marks, 0, sizeof c->marks); - memset (c->u_iv.iv, 0, c->cipher->blocksize); - memset (c->lastiv, 0, c->cipher->blocksize); -- memset (c->ctr, 0, c->cipher->blocksize); -+ memset (c->u_ctr.ctr, 0, c->cipher->blocksize); - } - - -@@ -1441,35 +1449,50 @@ - const unsigned char *inbuf, unsigned int inbuflen) - { - unsigned int n; -- unsigned char tmp[MAX_BLOCKSIZE]; - int i; - unsigned int blocksize = c->cipher->blocksize; -+ unsigned int nblocks; - - if (outbuflen < inbuflen) - return GPG_ERR_BUFFER_TOO_SHORT; - -- if ((inbuflen % blocksize)) -- return GPG_ERR_INV_LENGTH; -+ /* Use a bulk method if available. */ -+ nblocks = inbuflen / blocksize; -+ if (nblocks && c->bulk.ctr_enc) -+ { -+ c->bulk.ctr_enc (&c->context.c, c->u_ctr.ctr, outbuf, inbuf, nblocks); -+ inbuf += nblocks * blocksize; -+ outbuf += nblocks * blocksize; -+ inbuflen -= nblocks * blocksize; -+ } - -- for (n=0; n < inbuflen; n++) -+ /* If we don't have a bulk method use the standard method. We also -+ use this method for the a remaining partial block. */ -+ if (inbuflen) - { -- if ((n % blocksize) == 0) -- { -- c->cipher->encrypt (&c->context.c, tmp, c->ctr); -+ unsigned char tmp[MAX_BLOCKSIZE]; - -- for (i = blocksize; i > 0; i--) -- { -- c->ctr[i-1]++; -- if (c->ctr[i-1] != 0) -- break; -- } -- } -+ for (n=0; n < inbuflen; n++) -+ { -+ if ((n % blocksize) == 0) -+ { -+ c->cipher->encrypt (&c->context.c, tmp, c->u_ctr.ctr); -+ -+ for (i = blocksize; i > 0; i--) -+ { -+ c->u_ctr.ctr[i-1]++; -+ if (c->u_ctr.ctr[i-1] != 0) -+ break; -+ } -+ } -+ -+ /* XOR input with encrypted counter and store in output. */ -+ outbuf[n] = inbuf[n] ^ tmp[n % blocksize]; -+ } - -- /* XOR input with encrypted counter and store in output. */ -- outbuf[n] = inbuf[n] ^ tmp[n % blocksize]; -+ wipememory (tmp, sizeof tmp); - } - -- wipememory (tmp, sizeof tmp); - return 0; - } - -@@ -1517,7 +1540,7 @@ - - r = outbuf; - a = outbuf; /* We store A directly in OUTBUF. */ -- b = c->ctr; /* B is also used to concatenate stuff. */ -+ b = c->u_ctr.ctr; /* B is also used to concatenate stuff. */ - - /* If an IV has been set we use that IV as the Alternative Initial - Value; if it has not been set we use the standard value. */ -@@ -1593,7 +1616,7 @@ - - r = outbuf; - a = c->lastiv; /* We use c->LASTIV as buffer for A. */ -- b = c->ctr; /* B is also used to concatenate stuff. */ -+ b = c->u_ctr.ctr; /* B is also used to concatenate stuff. */ - - /* Copy the inbuf to the outbuf and save A. */ - memcpy (a, inbuf, 8); -@@ -1861,9 +1884,9 @@ - _gcry_cipher_setctr (gcry_cipher_hd_t hd, const void *ctr, size_t ctrlen) - { - if (ctr && ctrlen == hd->cipher->blocksize) -- memcpy (hd->ctr, ctr, hd->cipher->blocksize); -+ memcpy (hd->u_ctr.ctr, ctr, hd->cipher->blocksize); - else if (!ctr || !ctrlen) -- memset (hd->ctr, 0, hd->cipher->blocksize); -+ memset (hd->u_ctr.ctr, 0, hd->cipher->blocksize); - else - return gpg_error (GPG_ERR_INV_ARG); - return 0; -@@ -1923,9 +1946,9 @@ - - case GCRYCTL_SET_CTR: /* Deprecated; use gcry_cipher_setctr. */ - if (buffer && buflen == h->cipher->blocksize) -- memcpy (h->ctr, buffer, h->cipher->blocksize); -+ memcpy (h->u_ctr.ctr, buffer, h->cipher->blocksize); - else if (buffer == NULL || buflen == 0) -- memset (h->ctr, 0, h->cipher->blocksize); -+ memset (h->u_ctr.ctr, 0, h->cipher->blocksize); - else - rc = GPG_ERR_INV_ARG; - break; ---- cipher/rijndael.c -+++ cipher/rijndael.c -@@ -90,9 +90,7 @@ - #endif - - --static const char *selftest(void); -- -- -+ - /* Our context object. */ - typedef struct - { -@@ -144,6 +142,11 @@ - do { asm volatile ("pxor %%xmm0, %%xmm0\n\t" \ - "pxor %%xmm1, %%xmm1\n" :: ); \ - } while (0) -+# define aesni_cleanup_2_4() \ -+ do { asm volatile ("pxor %%xmm2, %%xmm2\n\t" \ -+ "pxor %%xmm3, %%xmm3\n" \ -+ "pxor %%xmm4, %%xmm4\n":: ); \ -+ } while (0) - #else - # define aesni_prepare() do { } while (0) - # define aesni_cleanup() do { } while (0) -@@ -154,6 +157,23 @@ - #include "rijndael-tables.h" - - -+ -+/* Function prototypes. */ -+#ifdef USE_AESNI -+/* We don't want to inline these functions to help gcc allocate enough -+ registers. */ -+static void do_aesni_ctr (const RIJNDAEL_context *ctx, unsigned char *ctr, -+ unsigned char *b, const unsigned char *a) -+ __attribute__ ((__noinline__)); -+static void do_aesni_ctr_4 (const RIJNDAEL_context *ctx, unsigned char *ctr, -+ unsigned char *b, const unsigned char *a) -+ __attribute__ ((__noinline__)); -+#endif /*USE_AESNI*/ -+ -+static const char *selftest(void); -+ -+ -+ - /* Perform the key setup. */ - static gcry_err_code_t - do_setkey (RIJNDAEL_context *ctx, const byte *key, const unsigned keylen) -@@ -272,7 +292,7 @@ - else if (ctx->use_aesni && ctx->rounds == 10) - { - /* Note: This code works for AES-128 but it is not much better -- than than using the standard key schedule. We disable it for -+ than using the standard key schedule. We disable it for - now and don't put any effort into implementing this for - AES-192 and AES-256. */ - asm volatile ("movl %[key], %%esi\n\t" -@@ -860,6 +880,239 @@ - #undef aesenclast_xmm1_xmm0 - } - -+/* Perform a CTR encryption round using the counter CTR and the input -+ block A. Write the result to the output block B and update CTR. -+ CTR needs to be a 16 byte aligned little-endian value. */ -+static void -+do_aesni_ctr (const RIJNDAEL_context *ctx, -+ unsigned char *ctr, unsigned char *b, const unsigned char *a) -+{ -+#define aesenc_xmm1_xmm0 ".byte 0x66, 0x0f, 0x38, 0xdc, 0xc1\n\t" -+#define aesenclast_xmm1_xmm0 ".byte 0x66, 0x0f, 0x38, 0xdd, 0xc1\n\t" -+ static unsigned char be_mask[16] __attribute__ ((aligned (16))) = -+ { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; -+ -+ asm volatile ("movdqa %[ctr], %%xmm0\n\t" /* xmm0, xmm2 := CTR */ -+ "movaps %%xmm0, %%xmm2\n\t" -+ "mov $1, %%esi\n\t" /* xmm2++ (big-endian) */ -+ "movd %%esi, %%xmm1\n\t" -+ "pshufb %[mask], %%xmm2\n\t" -+ "paddq %%xmm1, %%xmm2\n\t" -+ "pshufb %[mask], %%xmm2\n\t" -+ "movdqa %%xmm2, %[ctr]\n" /* Update CTR. */ -+ -+ "movl %[key], %%esi\n\t" /* esi := keyschenc */ -+ "movdqa (%%esi), %%xmm1\n\t" /* xmm1 := key[0] */ -+ "pxor %%xmm1, %%xmm0\n\t" /* xmm0 ^= key[0] */ -+ "movdqa 0x10(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ "movdqa 0x20(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ "movdqa 0x30(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ "movdqa 0x40(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ "movdqa 0x50(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ "movdqa 0x60(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ "movdqa 0x70(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ "movdqa 0x80(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ "movdqa 0x90(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ "movdqa 0xa0(%%esi), %%xmm1\n\t" -+ "cmp $10, %[rounds]\n\t" -+ "jz .Lenclast%=\n\t" -+ aesenc_xmm1_xmm0 -+ "movdqa 0xb0(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ "movdqa 0xc0(%%esi), %%xmm1\n\t" -+ "cmp $12, %[rounds]\n\t" -+ "jz .Lenclast%=\n\t" -+ aesenc_xmm1_xmm0 -+ "movdqa 0xd0(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ "movdqa 0xe0(%%esi), %%xmm1\n" -+ -+ ".Lenclast%=:\n\t" -+ aesenclast_xmm1_xmm0 -+ "movdqu %[src], %%xmm1\n\t" /* xmm1 := input */ -+ "pxor %%xmm1, %%xmm0\n\t" /* EncCTR ^= input */ -+ "movdqu %%xmm0, %[dst]" /* Store EncCTR. */ -+ -+ : [ctr] "+m" (*ctr), [dst] "=m" (*b) -+ : [src] "m" (*a), -+ [key] "g" (ctx->keyschenc), -+ [rounds] "g" (ctx->rounds), -+ [mask] "m" (*be_mask) -+ : "%esi", "cc", "memory"); -+#undef aesenc_xmm1_xmm0 -+#undef aesenclast_xmm1_xmm0 -+} -+ -+ -+/* Four blocks at a time variant of do_aesni_ctr. */ -+static void -+do_aesni_ctr_4 (const RIJNDAEL_context *ctx, -+ unsigned char *ctr, unsigned char *b, const unsigned char *a) -+{ -+#define aesenc_xmm1_xmm0 ".byte 0x66, 0x0f, 0x38, 0xdc, 0xc1\n\t" -+#define aesenc_xmm1_xmm2 ".byte 0x66, 0x0f, 0x38, 0xdc, 0xd1\n\t" -+#define aesenc_xmm1_xmm3 ".byte 0x66, 0x0f, 0x38, 0xdc, 0xd9\n\t" -+#define aesenc_xmm1_xmm4 ".byte 0x66, 0x0f, 0x38, 0xdc, 0xe1\n\t" -+#define aesenclast_xmm1_xmm0 ".byte 0x66, 0x0f, 0x38, 0xdd, 0xc1\n\t" -+#define aesenclast_xmm1_xmm2 ".byte 0x66, 0x0f, 0x38, 0xdd, 0xd1\n\t" -+#define aesenclast_xmm1_xmm3 ".byte 0x66, 0x0f, 0x38, 0xdd, 0xd9\n\t" -+#define aesenclast_xmm1_xmm4 ".byte 0x66, 0x0f, 0x38, 0xdd, 0xe1\n\t" -+ -+ static unsigned char be_mask[16] __attribute__ ((aligned (16))) = -+ { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; -+ -+ /* Register usage: -+ esi keyschedule -+ xmm0 CTR-0 -+ xmm1 temp / round key -+ xmm2 CTR-1 -+ xmm3 CTR-2 -+ xmm4 CTR-3 -+ xmm5 temp -+ */ -+ -+ asm volatile ("movdqa %[ctr], %%xmm0\n\t" /* xmm0, xmm2 := CTR */ -+ "movaps %%xmm0, %%xmm2\n\t" -+ "mov $1, %%esi\n\t" /* xmm1 := 1 */ -+ "movd %%esi, %%xmm1\n\t" -+ "pshufb %[mask], %%xmm2\n\t" /* xmm2 := le(xmm2) */ -+ "paddq %%xmm1, %%xmm2\n\t" /* xmm2++ */ -+ "movaps %%xmm2, %%xmm3\n\t" /* xmm3 := xmm2 */ -+ "paddq %%xmm1, %%xmm3\n\t" /* xmm3++ */ -+ "movaps %%xmm3, %%xmm4\n\t" /* xmm4 := xmm3 */ -+ "paddq %%xmm1, %%xmm4\n\t" /* xmm4++ */ -+ "movaps %%xmm4, %%xmm5\n\t" /* xmm5 := xmm4 */ -+ "paddq %%xmm1, %%xmm5\n\t" /* xmm5++ */ -+ "pshufb %[mask], %%xmm2\n\t" /* xmm2 := be(xmm2) */ -+ "pshufb %[mask], %%xmm3\n\t" /* xmm3 := be(xmm3) */ -+ "pshufb %[mask], %%xmm4\n\t" /* xmm4 := be(xmm4) */ -+ "pshufb %[mask], %%xmm5\n\t" /* xmm5 := be(xmm5) */ -+ "movdqa %%xmm5, %[ctr]\n" /* Update CTR. */ -+ -+ "movl %[key], %%esi\n\t" /* esi := keyschenc */ -+ "movdqa (%%esi), %%xmm1\n\t" /* xmm1 := key[0] */ -+ "pxor %%xmm1, %%xmm0\n\t" /* xmm0 ^= key[0] */ -+ "pxor %%xmm1, %%xmm2\n\t" /* xmm2 ^= key[0] */ -+ "pxor %%xmm1, %%xmm3\n\t" /* xmm3 ^= key[0] */ -+ "pxor %%xmm1, %%xmm4\n\t" /* xmm4 ^= key[0] */ -+ "movdqa 0x10(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ aesenc_xmm1_xmm2 -+ aesenc_xmm1_xmm3 -+ aesenc_xmm1_xmm4 -+ "movdqa 0x20(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ aesenc_xmm1_xmm2 -+ aesenc_xmm1_xmm3 -+ aesenc_xmm1_xmm4 -+ "movdqa 0x30(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ aesenc_xmm1_xmm2 -+ aesenc_xmm1_xmm3 -+ aesenc_xmm1_xmm4 -+ "movdqa 0x40(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ aesenc_xmm1_xmm2 -+ aesenc_xmm1_xmm3 -+ aesenc_xmm1_xmm4 -+ "movdqa 0x50(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ aesenc_xmm1_xmm2 -+ aesenc_xmm1_xmm3 -+ aesenc_xmm1_xmm4 -+ "movdqa 0x60(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ aesenc_xmm1_xmm2 -+ aesenc_xmm1_xmm3 -+ aesenc_xmm1_xmm4 -+ "movdqa 0x70(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ aesenc_xmm1_xmm2 -+ aesenc_xmm1_xmm3 -+ aesenc_xmm1_xmm4 -+ "movdqa 0x80(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ aesenc_xmm1_xmm2 -+ aesenc_xmm1_xmm3 -+ aesenc_xmm1_xmm4 -+ "movdqa 0x90(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ aesenc_xmm1_xmm2 -+ aesenc_xmm1_xmm3 -+ aesenc_xmm1_xmm4 -+ "movdqa 0xa0(%%esi), %%xmm1\n\t" -+ "cmp $10, %[rounds]\n\t" -+ "jz .Lenclast%=\n\t" -+ aesenc_xmm1_xmm0 -+ aesenc_xmm1_xmm2 -+ aesenc_xmm1_xmm3 -+ aesenc_xmm1_xmm4 -+ "movdqa 0xb0(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ aesenc_xmm1_xmm2 -+ aesenc_xmm1_xmm3 -+ aesenc_xmm1_xmm4 -+ "movdqa 0xc0(%%esi), %%xmm1\n\t" -+ "cmp $12, %[rounds]\n\t" -+ "jz .Lenclast%=\n\t" -+ aesenc_xmm1_xmm0 -+ aesenc_xmm1_xmm2 -+ aesenc_xmm1_xmm3 -+ aesenc_xmm1_xmm4 -+ "movdqa 0xd0(%%esi), %%xmm1\n\t" -+ aesenc_xmm1_xmm0 -+ aesenc_xmm1_xmm2 -+ aesenc_xmm1_xmm3 -+ aesenc_xmm1_xmm4 -+ "movdqa 0xe0(%%esi), %%xmm1\n" -+ -+ ".Lenclast%=:\n\t" -+ aesenclast_xmm1_xmm0 -+ aesenclast_xmm1_xmm2 -+ aesenclast_xmm1_xmm3 -+ aesenclast_xmm1_xmm4 -+ -+ "movdqu %[src], %%xmm1\n\t" /* Get block 1. */ -+ "pxor %%xmm1, %%xmm0\n\t" /* EncCTR-1 ^= input */ -+ "movdqu %%xmm0, %[dst]\n\t" /* Store block 1 */ -+ -+ "movdqu (16)%[src], %%xmm1\n\t" /* Get block 2. */ -+ "pxor %%xmm1, %%xmm2\n\t" /* EncCTR-2 ^= input */ -+ "movdqu %%xmm2, (16)%[dst]\n\t" /* Store block 2. */ -+ -+ "movdqu (32)%[src], %%xmm1\n\t" /* Get block 3. */ -+ "pxor %%xmm1, %%xmm3\n\t" /* EncCTR-3 ^= input */ -+ "movdqu %%xmm3, (32)%[dst]\n\t" /* Store block 3. */ -+ -+ "movdqu (48)%[src], %%xmm1\n\t" /* Get block 4. */ -+ "pxor %%xmm1, %%xmm4\n\t" /* EncCTR-4 ^= input */ -+ "movdqu %%xmm4, (48)%[dst]" /* Store block 4. */ -+ -+ : [ctr] "+m" (*ctr), [dst] "=m" (*b) -+ : [src] "m" (*a), -+ [key] "g" (ctx->keyschenc), -+ [rounds] "g" (ctx->rounds), -+ [mask] "m" (*be_mask) -+ : "%esi", "cc", "memory"); -+#undef aesenc_xmm1_xmm0 -+#undef aesenc_xmm1_xmm2 -+#undef aesenc_xmm1_xmm3 -+#undef aesenc_xmm1_xmm4 -+#undef aesenclast_xmm1_xmm0 -+#undef aesenclast_xmm1_xmm2 -+#undef aesenclast_xmm1_xmm3 -+#undef aesenclast_xmm1_xmm4 -+} -+ - - static void - do_aesni (RIJNDAEL_context *ctx, int decrypt_flag, -@@ -1014,6 +1267,69 @@ - - _gcry_burn_stack (48 + 2*sizeof(int)); - } -+ -+ -+/* Bulk encryption of complete blocks in CTR mode. Caller needs to -+ make sure that CTR is aligned on a 16 byte boundary if AESNI; the -+ minimum alignment is for an u32. This function is only intended -+ for the bulk encryption feature of cipher.c. CTR is expected to be -+ of size BLOCKSIZE. */ -+void -+_gcry_aes_ctr_enc (void *context, unsigned char *ctr, -+ void *outbuf_arg, const void *inbuf_arg, -+ unsigned int nblocks) -+{ -+ RIJNDAEL_context *ctx = context; -+ unsigned char *outbuf = outbuf_arg; -+ const unsigned char *inbuf = inbuf_arg; -+ unsigned char *p; -+ int i; -+ -+ if (0) -+ ; -+#ifdef USE_AESNI -+ else if (ctx->use_aesni) -+ { -+ aesni_prepare (); -+ for ( ;nblocks > 3 ; nblocks -= 4 ) -+ { -+ do_aesni_ctr_4 (ctx, ctr, outbuf, inbuf); -+ outbuf += 4*BLOCKSIZE; -+ inbuf += 4*BLOCKSIZE; -+ } -+ for ( ;nblocks; nblocks-- ) -+ { -+ do_aesni_ctr (ctx, ctr, outbuf, inbuf); -+ outbuf += BLOCKSIZE; -+ inbuf += BLOCKSIZE; -+ } -+ aesni_cleanup (); -+ aesni_cleanup_2_4 (); -+ } -+#endif /*USE_AESNI*/ -+ else -+ { -+ union { unsigned char x1[16]; u32 x32[4]; } tmp; -+ -+ for ( ;nblocks; nblocks-- ) -+ { -+ /* Encrypt the counter. */ -+ do_encrypt_aligned (ctx, tmp.x1, ctr); -+ /* XOR the input with the encrypted counter and store in output. */ -+ for (p=tmp.x1, i=0; i < BLOCKSIZE; i++) -+ *outbuf++ = (*p++ ^= *inbuf++); -+ /* Increment the counter. */ -+ for (i = BLOCKSIZE; i > 0; i--) -+ { -+ ctr[i-1]++; -+ if (ctr[i-1]) -+ break; -+ } -+ } -+ } -+ -+ _gcry_burn_stack (48 + 2*sizeof(int)); -+} - - - ---- src/cipher.h -+++ src/cipher.h -@@ -53,6 +53,9 @@ - void _gcry_aes_cbc_dec (void *context, unsigned char *iv, - void *outbuf_arg, const void *inbuf_arg, - unsigned int nblocks); -+void _gcry_aes_ctr_enc (void *context, unsigned char *ctr, -+ void *outbuf_arg, const void *inbuf_arg, -+ unsigned int nblocks); - - - /*-- dsa.c --*/ ---- tests/basic.c -+++ tests/basic.c -@@ -69,6 +69,22 @@ - } - - static void -+mismatch (const void *expected, size_t expectedlen, -+ const void *computed, size_t computedlen) -+{ -+ const unsigned char *p; -+ -+ fprintf (stderr, "expected:"); -+ for (p = expected; expectedlen; p++, expectedlen--) -+ fprintf (stderr, " %02x", *p); -+ fprintf (stderr, "\ncomputed:"); -+ for (p = computed; computedlen; p++, computedlen--) -+ fprintf (stderr, " %02x", *p); -+ fprintf (stderr, "\n"); -+} -+ -+ -+static void - die (const char *format, ...) - { - va_list arg_ptr; -@@ -349,8 +365,7 @@ - unsigned char plaintext[MAX_DATA_LEN]; - int inlen; - char out[MAX_DATA_LEN]; -- } -- data[MAX_DATA_LEN]; -+ } data[5]; - } tv[] = - { - /* http://csrc.nist.gov/publications/nistpubs/800-38a/sp800-38a.pdf */ -@@ -369,6 +384,8 @@ - { "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17\xad\x2b\x41\x7b\xe6\x6c\x37\x10", - 16, - "\x1e\x03\x1d\xda\x2f\xbe\x03\xd1\x79\x21\x70\xa0\xf3\x00\x9c\xee" }, -+ -+ { "", 0, "" } - } - }, - { GCRY_CIPHER_AES192, -@@ -387,6 +404,7 @@ - { "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17\xad\x2b\x41\x7b\xe6\x6c\x37\x10", - 16, - "\x4f\x78\xa7\xf6\xd2\x98\x09\x58\x5a\x97\xda\xec\x58\xc6\xb0\x50" }, -+ { "", 0, "" } - } - }, - { GCRY_CIPHER_AES256, -@@ -404,7 +422,80 @@ - "\x2b\x09\x30\xda\xa2\x3d\xe9\x4c\xe8\x70\x17\xba\x2d\x84\x98\x8d" }, - { "\xf6\x9f\x24\x45\xdf\x4f\x9b\x17\xad\x2b\x41\x7b\xe6\x6c\x37\x10", - 16, -- "\xdf\xc9\xc5\x8d\xb6\x7a\xad\xa6\x13\xc2\xdd\x08\x45\x79\x41\xa6" } -+ "\xdf\xc9\xc5\x8d\xb6\x7a\xad\xa6\x13\xc2\xdd\x08\x45\x79\x41\xa6" }, -+ { "", 0, "" } -+ } -+ }, -+ /* Some truncation tests. With a truncated second block and -+ also with a single truncated block. */ -+ { GCRY_CIPHER_AES, -+ "\x2b\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c", -+ "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", -+ {{"\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a", -+ 16, -+ "\x87\x4d\x61\x91\xb6\x20\xe3\x26\x1b\xef\x68\x64\x99\x0d\xb6\xce" }, -+ {"\xae\x2d\x8a\x57\x1e\x03\xac\x9c\x9e\xb7\x6f\xac\x45\xaf\x8e", -+ 15, -+ "\x98\x06\xf6\x6b\x79\x70\xfd\xff\x86\x17\x18\x7b\xb9\xff\xfd" }, -+ {"", 0, "" } -+ } -+ }, -+ { GCRY_CIPHER_AES, -+ "\x2b\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c", -+ "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", -+ {{"\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a", -+ 16, -+ "\x87\x4d\x61\x91\xb6\x20\xe3\x26\x1b\xef\x68\x64\x99\x0d\xb6\xce" }, -+ {"\xae", -+ 1, -+ "\x98" }, -+ {"", 0, "" } -+ } -+ }, -+ { GCRY_CIPHER_AES, -+ "\x2b\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c", -+ "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", -+ {{"\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17", -+ 15, -+ "\x87\x4d\x61\x91\xb6\x20\xe3\x26\x1b\xef\x68\x64\x99\x0d\xb6" }, -+ {"", 0, "" } -+ } -+ }, -+ { GCRY_CIPHER_AES, -+ "\x2b\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c", -+ "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff", -+ {{"\x6b", -+ 1, -+ "\x87" }, -+ {"", 0, "" } -+ } -+ }, -+#if USE_CAST5 -+ /* A selfmade test vector using an 64 bit block cipher. */ -+ { GCRY_CIPHER_CAST5, -+ "\x2b\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c", -+ "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8", -+ {{"\x6b\xc1\xbe\xe2\x2e\x40\x9f\x96\xe9\x3d\x7e\x11\x73\x93\x17\x2a", -+ 16, -+ "\xe8\xa7\xac\x68\xca\xca\xa0\x20\x10\xcb\x1b\xcc\x79\x2c\xc4\x48" }, -+ {"\xae\x2d\x8a\x57\x1e\x03\xac\x9c", -+ 8, -+ "\x16\xe8\x72\x77\xb0\x98\x29\x68" }, -+ {"\x9e\xb7\x6f\xac\x45\xaf\x8e\x51", -+ 8, -+ "\x9a\xb3\xa8\x03\x3b\xb4\x14\xba" }, -+ {"\xae\x2d\x8a\x57\x1e\x03\xac\x9c\xa1\x00", -+ 10, -+ "\x31\x5e\xd3\xfb\x1b\x8d\xd1\xf9\xb0\x83" }, -+ { "", 0, "" } -+ } -+ }, -+#endif /*USE_CAST5*/ -+ { 0, -+ "", -+ "", -+ { -+ {"", 0, "" } - } - } - }; -@@ -417,6 +508,9 @@ - fprintf (stderr, " Starting CTR cipher checks.\n"); - for (i = 0; i < sizeof (tv) / sizeof (tv[0]); i++) - { -+ if (!tv[i].algo) -+ continue; -+ - err = gcry_cipher_open (&hde, tv[i].algo, GCRY_CIPHER_MODE_CTR, 0); - if (!err) - err = gcry_cipher_open (&hdd, tv[i].algo, GCRY_CIPHER_MODE_CTR, 0); -@@ -485,7 +579,11 @@ - } - - if (memcmp (tv[i].data[j].out, out, tv[i].data[j].inlen)) -- fail ("aes-ctr, encrypt mismatch entry %d:%d\n", i, j); -+ { -+ fail ("aes-ctr, encrypt mismatch entry %d:%d\n", i, j); -+ mismatch (tv[i].data[j].out, tv[i].data[j].inlen, -+ out, tv[i].data[j].inlen); -+ } - - err = gcry_cipher_decrypt (hdd, out, tv[i].data[j].inlen, NULL, 0); - if (err) -@@ -498,7 +596,11 @@ - } - - if (memcmp (tv[i].data[j].plaintext, out, tv[i].data[j].inlen)) -- fail ("aes-ctr, decrypt mismatch entry %d:%d\n", i, j); -+ { -+ fail ("aes-ctr, decrypt mismatch entry %d:%d\n", i, j); -+ mismatch (tv[i].data[j].plaintext, tv[i].data[j].inlen, -+ out, tv[i].data[j].inlen); -+ } - - } - -@@ -509,18 +611,6 @@ - if (err) - fail ("aes-ctr, encryption failed for valid input"); - -- err = gcry_cipher_encrypt (hde, out, MAX_DATA_LEN, -- "1234567890123456", 15); -- if (gpg_err_code (err) != GPG_ERR_INV_LENGTH) -- fail ("aes-ctr, too short input returned wrong error: %s\n", -- gpg_strerror (err)); -- -- err = gcry_cipher_encrypt (hde, out, MAX_DATA_LEN, -- "12345678901234567", 17); -- if (gpg_err_code (err) != GPG_ERR_INV_LENGTH) -- fail ("aes-ctr, too long input returned wrong error: %s\n", -- gpg_strerror (err)); -- - err = gcry_cipher_encrypt (hde, out, 15, - "1234567890123456", 16); - if (gpg_err_code (err) != GPG_ERR_BUFFER_TOO_SHORT) -@@ -545,18 +635,6 @@ - if (err) - fail ("aes-ctr, decryption failed for valid input"); - -- err = gcry_cipher_decrypt (hde, out, MAX_DATA_LEN, -- "1234567890123456", 15); -- if (gpg_err_code (err) != GPG_ERR_INV_LENGTH) -- fail ("aes-ctr, too short input returned wrong error: %s\n", -- gpg_strerror (err)); -- -- err = gcry_cipher_decrypt (hde, out, MAX_DATA_LEN, -- "12345678901234567", 17); -- if (gpg_err_code (err) != GPG_ERR_INV_LENGTH) -- fail ("aes-ctr, too long input returned wrong error: %s\n", -- gpg_strerror (err)); -- - err = gcry_cipher_decrypt (hde, out, 15, - "1234567890123456", 16); - if (gpg_err_code (err) != GPG_ERR_BUFFER_TOO_SHORT) diff --git a/dev-libs/libgcrypt/libgcrypt-1.5.0_beta1-r1.ebuild b/dev-libs/libgcrypt/libgcrypt-1.5.0_beta1-r1.ebuild deleted file mode 100644 index b97f9c03f735..000000000000 --- a/dev-libs/libgcrypt/libgcrypt-1.5.0_beta1-r1.ebuild +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright 1999-2011 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/libgcrypt/libgcrypt-1.5.0_beta1-r1.ebuild,v 1.1 2011/04/06 18:37:54 c1pher Exp $ - -EAPI="3" - -DESCRIPTION="General purpose crypto library based on the code used in GnuPG" -HOMEPAGE="http://www.gnupg.org/" -#SRC_URI="mirror://gnupg/libgcrypt/${P}.tar.bz2 -# ftp://ftp.gnupg.org/gcrypt/${PN}/${P}.tar.bz2" -SRC_URI="ftp://ftp.gnupg.org/gcrypt/alpha/${PN}/${P/_/-}.tar.bz2" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd" -IUSE="static-libs" - -RDEPEND=">=dev-libs/libgpg-error-1.8" -DEPEND="${RDEPEND}" - -S="${WORKDIR}/${P/_/-}" - -src_configure() { - # --disable-padlock-support for bug #201917 - econf \ - --disable-padlock-support \ - --disable-dependency-tracking \ - --with-pic \ - --enable-noexecstack \ - --disable-O-flag-munging \ - $(use_enable static-libs static) -} - -src_install() { - emake DESTDIR="${D}" install || die "emake install failed" - dodoc AUTHORS ChangeLog NEWS README* THANKS TODO || die "dodoc failed" -} diff --git a/dev-libs/libgcrypt/libgcrypt-1.5.0_beta1-r2.ebuild b/dev-libs/libgcrypt/libgcrypt-1.5.0_beta1-r2.ebuild deleted file mode 100644 index c2bf8dafc124..000000000000 --- a/dev-libs/libgcrypt/libgcrypt-1.5.0_beta1-r2.ebuild +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright 1999-2011 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-libs/libgcrypt/libgcrypt-1.5.0_beta1-r2.ebuild,v 1.1 2011/05/01 16:04:19 arfrever Exp $ - -EAPI="3" - -inherit eutils - -DESCRIPTION="General purpose crypto library based on the code used in GnuPG" -HOMEPAGE="http://www.gnupg.org/" -#SRC_URI="mirror://gnupg/libgcrypt/${P}.tar.bz2 -# ftp://ftp.gnupg.org/gcrypt/${PN}/${P}.tar.bz2" -SRC_URI="ftp://ftp.gnupg.org/gcrypt/alpha/${PN}/${P/_/-}.tar.bz2" - -LICENSE="LGPL-2.1" -SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~sparc-fbsd ~x86-fbsd" -IUSE="static-libs" - -RDEPEND=">=dev-libs/libgpg-error-1.8" -DEPEND="${RDEPEND}" - -S="${WORKDIR}/${P/_/-}" - -src_prepare() { - epatch "${FILESDIR}/${P}-ctr.patch" -} - -src_configure() { - # --disable-padlock-support for bug #201917 - econf \ - --disable-padlock-support \ - --disable-dependency-tracking \ - --with-pic \ - --enable-noexecstack \ - --disable-O-flag-munging \ - $(use_enable static-libs static) -} - -src_install() { - emake DESTDIR="${D}" install || die "emake install failed" - dodoc AUTHORS ChangeLog NEWS README* THANKS TODO || die "dodoc failed" -} |