aboutsummaryrefslogtreecommitdiff
path: root/security/p5-Crypt-GCrypt
diff options
context:
space:
mode:
authorKurt Jaeger <pi@FreeBSD.org>2014-07-30 03:57:23 +0000
committerKurt Jaeger <pi@FreeBSD.org>2014-07-30 03:57:23 +0000
commitb95d127471e2fd17cc8d189dbeec094e3ff556db (patch)
tree15807f23c2499ac331641e73da0725c3432fea04 /security/p5-Crypt-GCrypt
parent626234f3eae064cb91ca281da3c79d84b69bf30c (diff)
downloadports-b95d127471e2fd17cc8d189dbeec094e3ff556db.tar.gz
ports-b95d127471e2fd17cc8d189dbeec094e3ff556db.zip
security/libgcrypt: 1.5.3_3 -> 1.6.1
- Update to 1.6.1 - Remove some unneeded patches - Fix pkg-plist - report configure bug upstream https://bugs.g10code.com/gnupg/issue1668 - report API breakage downstream and find that MacPorts had the same issue https://rt.cpan.org/Ticket/Display.html?id=97201 - bump PORTREVISION for dependent ports (approx. 100 ports) - Thanks to exp-run by antoine@ to find ports that break - patch ports that would otherwise break security/shishi with PR 192164 is already committed [1] devel/ccrtp [2] editors/abiword [3] security/p5-Crypt-GCrypt PR: 191256, 192162 [1], 192163 [2], 192166 [3] Submitted by: Carlos Jacobo Puga Medina <cjpugmed@gmail.com> Approved by: maintainer timeout, antoine (exp-run), portmgr (implicit)
Notes
Notes: svn path=/head/; revision=363436
Diffstat (limited to 'security/p5-Crypt-GCrypt')
-rw-r--r--security/p5-Crypt-GCrypt/Makefile4
-rw-r--r--security/p5-Crypt-GCrypt/files/patch-GCrypt.xs143
2 files changed, 147 insertions, 0 deletions
diff --git a/security/p5-Crypt-GCrypt/Makefile b/security/p5-Crypt-GCrypt/Makefile
index 71f9f65da1ff..cbc5933bdcc4 100644
--- a/security/p5-Crypt-GCrypt/Makefile
+++ b/security/p5-Crypt-GCrypt/Makefile
@@ -3,6 +3,7 @@
PORTNAME= Crypt-GCrypt
PORTVERSION= 1.26
+PORTREVISION= 1
CATEGORIES= security perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-
@@ -20,4 +21,7 @@ CONFIGURE_ARGS= GCRYPTINCPATH=${LOCALBASE}/include \
USE_PERL5= configure
USES= perl5
+post-stage:
+ ${STRIP_CMD} ${STAGEDIR}${SITE_PERL}/${PERL_ARCH}/auto/Crypt/GCrypt/GCrypt.so
+
.include <bsd.port.mk>
diff --git a/security/p5-Crypt-GCrypt/files/patch-GCrypt.xs b/security/p5-Crypt-GCrypt/files/patch-GCrypt.xs
new file mode 100644
index 000000000000..b1e041e18232
--- /dev/null
+++ b/security/p5-Crypt-GCrypt/files/patch-GCrypt.xs
@@ -0,0 +1,143 @@
+--- GCrypt.xs.orig 2011-05-27 22:04:03.000000000 +0200
++++ GCrypt.xs 2014-07-27 16:14:05.000000000 +0200
+@@ -56,9 +56,13 @@
+ int type;
+ int action;
+ gcry_cipher_hd_t h;
++/*
+ gcry_ac_handle_t h_ac;
++*/
+ gcry_md_hd_t h_md;
++/*
+ gcry_ac_key_t key_ac;
++*/
+ gcry_error_t err;
+ int mode;
+ int padding;
+@@ -203,7 +207,9 @@
+ char *s, *algo_s, *mode_s, *key_s;
+ int i, algo, mode;
+ unsigned int c_flags, ac_flags, md_flags;
++/*
+ gcry_ac_id_t ac_algo;
++*/
+ bool have_mode;
+ CODE:
+ New(0, RETVAL, 1, struct Crypt_GCrypt_s);
+@@ -322,25 +328,19 @@
+ if (!(algo = gcry_md_map_name(algo_s)))
+ croak("Unknown digest algorithm %s", algo_s);
+
+- RETVAL->err = gcry_md_open(&RETVAL->h_md, algo, md_flags);
++ RETVAL->err = gcry_md_open(&RETVAL->h_md, algo, md_flags);
+ if (RETVAL->h_md == NULL) XSRETURN_UNDEF;
+
+- if (md_flags & GCRY_MD_FLAG_HMAC) {
+- /* what if this overwrites the earlier error value? */
+- RETVAL->err = gcry_md_setkey(RETVAL->h_md, key_s, RETVAL->keylen);
++ if (md_flags & GCRY_MD_FLAG_HMAC) {
++ /* what if this overwrites the earlier error value? */
++ RETVAL->err = gcry_md_setkey(RETVAL->h_md, key_s, RETVAL->keylen);
++ }
+ }
+- }
+ if (RETVAL->type == CG_TYPE_ASYMM) {
+
+ croak("Asymmetric cryptography is not yet supported by Crypt::GCrypt");
++ XSRETURN_UNDEF;
+
+- RETVAL->err = gcry_ac_name_to_id(algo_s, &ac_algo);
+- if (RETVAL->err)
+- croak("Unknown algorithm %s", algo_s);
+-
+- /* Init ac */
+- RETVAL->err = gcry_ac_open(&RETVAL->h_ac, ac_algo, ac_flags);
+- if (RETVAL->h_ac == NULL) XSRETURN_UNDEF;
+ }
+
+
+@@ -532,39 +532,6 @@
+ OUTPUT:
+ RETVAL
+
+-SV *
+-cg_sign(gcr, in)
+- Crypt_GCrypt gcr;
+- SV *in;
+- PREINIT:
+- gcry_mpi_t in_mpi, out_mpi;
+- gcry_ac_data_t outdata;
+- size_t len;
+- const void *inbuf;
+- const char *label;
+- char* outbuf;
+- CODE:
+- /*
+- in_mpi = gcry_mpi_new(0);
+- out_mpi = gcry_mpi_new(0);
+- inbuf = SvPV(in, len);
+- printf("inbuf: %s\n", inbuf);
+- gcry_mpi_scan( &in_mpi, GCRYMPI_FMT_STD, inbuf, strlen(inbuf), NULL );
+- printf("Key: %s\n", gcr->key_ac);
+- gcr->err = gcry_ac_data_sign(gcr->h_ac, gcr->key_ac, in_mpi, &outdata);
+- if (gcr->err) {
+- croak( gcry_strerror(gcr->err) );
+- }
+- printf("Here\n");
+- gcr->err = gcry_ac_data_get_index (outdata, 0, 0, &label, &out_mpi);
+- printf("Before (%s)\n", label);
+- gcry_mpi_print(GCRYMPI_FMT_STD, outbuf, 1024, NULL, out_mpi);
+- printf("After\n");
+- RETVAL = newSVpv(outbuf, 0);
+- */
+- OUTPUT:
+- RETVAL
+-
+ void
+ cg_start(gcr, act)
+ Crypt_GCrypt gcr;
+@@ -594,8 +561,10 @@
+ PREINIT:
+ char *k, *s;
+ char *mykey, *buf;
++/*
+ gcry_ac_key_type_t keytype;
+ gcry_ac_data_t keydata;
++*/
+ gcry_mpi_t mpi;
+ size_t len;
+ CODE:
+@@ -617,22 +586,7 @@
+
+ /* Set key for asymmetric criptography */
+ if (gcr->type == CG_TYPE_ASYMM) {
+- k = SvPV(ST(2), len);
+-
+- /* Key type */
+- keytype = -1;
+- s = SvPV(ST(1), len);
+- if (strcmp(s, "private") == 0) keytype = GCRY_AC_KEY_SECRET;
+- if (strcmp(s, "public") == 0) keytype = GCRY_AC_KEY_PUBLIC;
+- if (keytype == -1)
+- croak("Key must be private or public");
+-
+- gcry_control(GCRYCTL_INIT_SECMEM, strlen(k));
+- mpi = gcry_mpi_snew(0);
+- /* gcry_mpi_scan( &mpi, GCRYMPI_FMT_STD, k, NULL, NULL ); */
+- gcr->err = gcry_ac_data_new(&keydata);
+- gcr->err = gcry_ac_data_set(keydata, GCRY_AC_FLAG_COPY, "s", mpi);
+- gcr->err = gcry_ac_key_init(&gcr->key_ac, gcr->h_ac, keytype, keydata);
++ croak("Asymmetric cryptography is not yet supported by Crypt::GCrypt");
+ }
+
+ void
+@@ -796,7 +750,9 @@
+ Crypt_GCrypt gcr;
+ CODE:
+ if (gcr->type == CG_TYPE_CIPHER) gcry_cipher_close(gcr->h);
++/*
+ if (gcr->type == CG_TYPE_ASYMM) gcry_ac_close(gcr->h_ac);
++*/
+ if (gcr->type == CG_TYPE_DIGEST) gcry_md_close(gcr->h_md);
+
+ if (gcr->need_to_call_finish == 1)