From 74f063623c8064488726a2b0ef096f2efeeb2807387bff70e52c8a1cfeef14e4 Mon Sep 17 00:00:00 2001 From: OBS User unknown Date: Mon, 1 Sep 2008 13:38:19 +0000 Subject: [PATCH] OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libp11?expand=0&rev=6 --- baselibs.conf | 3 +- libp11-0.2.3.tar.bz2 | 3 - libp11-0.2.4.tar.bz2 | 3 + libp11-api-fix.patch | 22 ++++++ libp11-api-update.patch | 15 ++++ libp11-strict-aliasing.patch | 136 ++++++++++++++++++++++++++++++++++- libp11.changes | 11 +++ libp11.spec | 63 +++++++++------- 8 files changed, 225 insertions(+), 31 deletions(-) delete mode 100644 libp11-0.2.3.tar.bz2 create mode 100644 libp11-0.2.4.tar.bz2 create mode 100644 libp11-api-fix.patch create mode 100644 libp11-api-update.patch diff --git a/baselibs.conf b/baselibs.conf index 8021e14..e544e44 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,2 +1 @@ -libp11 -libp11-0 +libp11-1 diff --git a/libp11-0.2.3.tar.bz2 b/libp11-0.2.3.tar.bz2 deleted file mode 100644 index 7e17495..0000000 --- a/libp11-0.2.3.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cb0bfa332e124373e843d82a152a2a3c5989cca4a3c344c47076ae4e618cc5da -size 305743 diff --git a/libp11-0.2.4.tar.bz2 b/libp11-0.2.4.tar.bz2 new file mode 100644 index 0000000..cac8434 --- /dev/null +++ b/libp11-0.2.4.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82727e24018eb93280476a4c8f61f4dd24f62584a1f36faf839decfb422bbc6c +size 306885 diff --git a/libp11-api-fix.patch b/libp11-api-fix.patch new file mode 100644 index 0000000..4ced384 --- /dev/null +++ b/libp11-api-fix.patch @@ -0,0 +1,22 @@ +--- src/libp11.h ++++ src/libp11.h +@@ -112,7 +112,7 @@ + * + * @return none + */ +-extern void *PKCS11_CTX_init_args(PKCS11_CTX * ctx, const char * init_args); ++extern void PKCS11_CTX_init_args(PKCS11_CTX * ctx, const char * init_args); + + /** + * Load a PKCS#11 module +--- src/p11_load.c ++++ src/p11_load.c +@@ -43,7 +43,7 @@ + /* + * Set private init args for module + */ +-void *PKCS11_CTX_init_args(PKCS11_CTX * ctx, const char *init_args) ++void PKCS11_CTX_init_args(PKCS11_CTX * ctx, const char *init_args) + { + PKCS11_CTX_private *priv = PRIVCTX(ctx); + priv->init_args = init_args ? strdup(init_args) : NULL; diff --git a/libp11-api-update.patch b/libp11-api-update.patch new file mode 100644 index 0000000..29b6ebe --- /dev/null +++ b/libp11-api-update.patch @@ -0,0 +1,15 @@ +--- configure.ac ++++ configure.ac +@@ -20,9 +20,9 @@ + # (Code changed: REVISION++) + # (Oldest interface removed: OLDEST++) + # (Interfaces added: CURRENT++, REVISION=0) +-LIBP11_LT_CURRENT="1" +-LIBP11_LT_OLDEST="0" +-LIBP11_LT_REVISION="2" ++LIBP11_LT_CURRENT="2" ++LIBP11_LT_OLDEST="1" ++LIBP11_LT_REVISION="0" + LIBP11_LT_AGE="$((${LIBP11_LT_CURRENT}-${LIBP11_LT_OLDEST}))" + + AC_CONFIG_SRCDIR([src/libp11.h]) diff --git a/libp11-strict-aliasing.patch b/libp11-strict-aliasing.patch index 2532bb5..6c9090a 100644 --- a/libp11-strict-aliasing.patch +++ b/libp11-strict-aliasing.patch @@ -1,6 +1,62 @@ +--- src/libp11.h ++++ src/libp11.h +@@ -53,7 +53,7 @@ + typedef struct PKCS11_key_st { + char *label; + unsigned char *id; +- int id_len; ++ size_t id_len; + unsigned char isPrivate; /**< private key present? */ + unsigned char needLogin; /**< login to read private key? */ + EVP_PKEY *evp_key; /**< initially NULL, need to call PKCS11_load_key */ +@@ -64,7 +64,7 @@ + typedef struct PKCS11_cert_st { + char *label; + unsigned char *id; +- int id_len; ++ size_t id_len; + X509 *x509; + void *_private; + } PKCS11_CERT; +@@ -291,7 +291,7 @@ + * @retval -1 error + */ + +-extern int PKCS11_generate_key(PKCS11_TOKEN * token, int algorithm, unsigned int bits, char *label, unsigned char* id, unsigned int id_len); ++extern int PKCS11_generate_key(PKCS11_TOKEN * token, int algorithm, unsigned int bits, char *label, unsigned char* id, size_t id_len); + + /** + * Store private key on a token +@@ -304,7 +304,7 @@ + * @retval 0 success + * @retval -1 error + */ +-extern int PKCS11_store_private_key(PKCS11_TOKEN * token, EVP_PKEY * pk, char *label, unsigned char *id, unsigned int id_len); ++extern int PKCS11_store_private_key(PKCS11_TOKEN * token, EVP_PKEY * pk, char *label, unsigned char *id, size_t id_len); + + /** + * Store public key on a token +@@ -317,7 +317,7 @@ + * @retval 0 success + * @retval -1 error + */ +-extern int PKCS11_store_public_key(PKCS11_TOKEN * token, EVP_PKEY * pk, char *label, unsigned char *id, unsigned int id_len); ++extern int PKCS11_store_public_key(PKCS11_TOKEN * token, EVP_PKEY * pk, char *label, unsigned char *id, size_t id_len); + + /** + * Store certificate on a token +@@ -332,7 +332,7 @@ + * @retval -1 error + */ + extern int PKCS11_store_certificate(PKCS11_TOKEN * token, X509 * x509, +- char *label, unsigned char *id, unsigned int id_len, ++ char *label, unsigned char *id, size_t id_len, + PKCS11_CERT **ret_cert); + + /* rsa private key operations */ --- src/p11_cert.c +++ src/p11_cert.c -@@ -173,7 +173,7 @@ +@@ -174,7 +174,7 @@ cert->x509 = d2i_X509(NULL, &p, size); } cert->id_len = sizeof(id); @@ -9,9 +65,56 @@ cert->id = (unsigned char *) malloc(cert->id_len); memcpy(cert->id, id, cert->id_len); } +@@ -219,7 +219,7 @@ + */ + int + PKCS11_store_certificate(PKCS11_TOKEN * token, X509 * x509, char *label, +- unsigned char *id, unsigned int id_len, ++ unsigned char *id, size_t id_len, + PKCS11_CERT ** ret_cert) + { + PKCS11_SLOT *slot = TOKEN2SLOT(token); --- src/p11_key.c +++ src/p11_key.c -@@ -282,7 +282,7 @@ +@@ -31,9 +31,9 @@ + CK_SESSION_HANDLE session, CK_OBJECT_HANDLE o, + CK_OBJECT_CLASS type, PKCS11_KEY **); + static int pkcs11_store_private_key(PKCS11_TOKEN *, EVP_PKEY *, char *, +- unsigned char *, unsigned int, PKCS11_KEY **); ++ unsigned char *, size_t, PKCS11_KEY **); + static int pkcs11_store_public_key(PKCS11_TOKEN *, EVP_PKEY *, char *, +- unsigned char *, unsigned int, PKCS11_KEY **); ++ unsigned char *, size_t, PKCS11_KEY **); + + static CK_OBJECT_CLASS key_search_class; + static CK_ATTRIBUTE key_search_attrs[] = { +@@ -93,14 +93,14 @@ + /* + * Store a private key on the token + */ +-int PKCS11_store_private_key(PKCS11_TOKEN * token, EVP_PKEY * pk, char *label, unsigned char *id, unsigned int id_len) ++int PKCS11_store_private_key(PKCS11_TOKEN * token, EVP_PKEY * pk, char *label, unsigned char *id, size_t id_len) + { + if (pkcs11_store_private_key(token, pk, label, id, id_len, NULL)) + return -1; + return 0; + } + +-int PKCS11_store_public_key(PKCS11_TOKEN * token, EVP_PKEY * pk, char *label, unsigned char *id, unsigned int id_len) ++int PKCS11_store_public_key(PKCS11_TOKEN * token, EVP_PKEY * pk, char *label, unsigned char *id, size_t id_len) + { + if (pkcs11_store_public_key(token, pk, label, id, id_len, NULL)) + return -1; +@@ -114,7 +114,7 @@ + */ + int + PKCS11_generate_key(PKCS11_TOKEN * token, +- int algorithm, unsigned int bits, char *label, unsigned char* id, unsigned int id_len) ++ int algorithm, unsigned int bits, char *label, unsigned char* id, size_t id_len) + { + PKCS11_KEY *key_obj; + EVP_PKEY *pk; +@@ -283,7 +283,7 @@ if (!pkcs11_getattr_s(token, obj, CKA_LABEL, label, sizeof(label))) key->label = BUF_strdup(label); key->id_len = sizeof(id); @@ -20,3 +123,32 @@ key->id = (unsigned char *) malloc(key->id_len); memcpy(key->id, id, key->id_len); } +@@ -329,7 +329,7 @@ + * Store private key + */ + static int pkcs11_store_private_key(PKCS11_TOKEN * token, EVP_PKEY * pk, +- char *label, unsigned char *id, unsigned int id_len, ++ char *label, unsigned char *id, size_t id_len, + PKCS11_KEY ** ret_key) + { + PKCS11_SLOT *slot = TOKEN2SLOT(token); +@@ -392,7 +392,7 @@ + * Store public key + */ + static int pkcs11_store_public_key(PKCS11_TOKEN * token, EVP_PKEY * pk, +- char *label, unsigned char *id, unsigned int id_len, ++ char *label, unsigned char *id, size_t id_len, + PKCS11_KEY ** ret_key) + { + PKCS11_SLOT *slot = TOKEN2SLOT(token); +--- src/pkcs11.h ++++ src/pkcs11.h +@@ -460,7 +460,7 @@ + { + ck_attribute_type_t type; + void *value; +- unsigned long value_len; ++ size_t value_len; + }; + + diff --git a/libp11.changes b/libp11.changes index ec911d2..47e43e0 100644 --- a/libp11.changes +++ b/libp11.changes @@ -1,3 +1,14 @@ +------------------------------------------------------------------- +Tue Aug 19 14:53:13 CEST 2008 - sbrabec@suse.cz + +- Updated to version 0.2.4: + * Build system rewritten + * added PKCS11_CTX_init_args + * fix segfault in init_args code + * implemented PKCS11_private_encrypt +- Fixed incorrect API. +- Fixed x86_64 issues. + ------------------------------------------------------------------- Thu Apr 10 12:54:45 CEST 2008 - ro@suse.de diff --git a/libp11.spec b/libp11.spec index f4fa405..9b1f659 100644 --- a/libp11.spec +++ b/libp11.spec @@ -1,10 +1,17 @@ # -# spec file for package libp11 (Version 0.2.3) +# spec file for package libp11 (Version 0.2.4) # # Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany. -# This file and all modifications and additions to the pristine -# package are under the same license as the package itself. # +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + # Please submit bugfixes or comments via http://bugs.opensuse.org/ # @@ -12,14 +19,17 @@ Name: libp11 -Version: 0.2.3 -Release: 3 +Version: 0.2.4 +Release: 1 Url: http://www.opensc-project.org/libp11/ Group: Productivity/Security License: LGPL v2.1 or later Summary: Library Implementing a Small Layer on Top of PKCS#11 API Source: %{name}-%{version}.tar.bz2 +# All three following patches were sent to upstream: Patch: libp11-strict-aliasing.patch +Patch1: libp11-api-fix.patch +Patch2: libp11-api-update.patch BuildRequires: openssl-devel pkg-config zlib-devel BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -45,14 +55,14 @@ Authors: Olaf Kirch Stef Hoeben -%package -n libp11-0 +%package -n libp11-1 License: LGPL v2.1 or later Group: Productivity/Security Summary: Library Implementing a Small Layer on Top of PKCS#11 API Provides: %{name} = %{version} Obsoletes: %{name} <= %{version} -%description -n libp11-0 +%description -n libp11-1 Libp11 is a library implementing a small layer on top of PKCS#11 API to make using PKCS#11 implementations easier. @@ -78,7 +88,7 @@ Authors: License: LGPL v2.1 or later Group: Development/Libraries/C and C++ Summary: Library Implementing a Small Layer on Top of PKCS#11 API -Requires: libp11-0 = %{version} glibc-devel openssl-devel libtool +Requires: libp11-1 = %{version} glibc-devel openssl-devel libtool zlib-devel %description devel Libp11 is a library implementing a small layer on top of PKCS#11 API to @@ -105,45 +115,50 @@ Authors: %prep %setup -q %patch +%patch1 +%patch2 %build -%configure +%configure\ + --enable-doc\ + --docdir=%{_docdir}/libp11-1\ + --enable-api-doc\ + --with-apidocdir=%{_docdir}/%{name}-devel make %{?jobs:-j%jobs} %install %makeinstall -mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name} $RPM_BUILD_ROOT%{_docdir}/libp11-0 -cp -a COPYING NEWS doc/README doc/ChangeLog doc/*.css doc/*.html $RPM_BUILD_ROOT%{_docdir}/libp11-0 -cp -a doc/api $RPM_BUILD_ROOT%{_docdir}/%{name} +mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name} $RPM_BUILD_ROOT%{_docdir}/libp11-1 %clean rm -rf $RPM_BUILD_ROOT -%post -n libp11-0 -p /sbin/ldconfig +%post -n libp11-1 -p /sbin/ldconfig -%postun -n libp11-0 -p /sbin/ldconfig +%postun -n libp11-1 -p /sbin/ldconfig -%files -n libp11-0 +%files -n libp11-1 %defattr (-, root, root) -%doc %dir %{_docdir}/libp11-0 -%doc %{_docdir}/libp11-0/COPYING -%doc %{_docdir}/libp11-0/NEWS -%doc %{_docdir}/libp11-0/README -%doc %{_docdir}/libp11-0/ChangeLog -%doc %{_docdir}/libp11-0/*.html -%doc %{_docdir}/libp11-0/*.css +%doc %{_docdir}/libp11-1 %{_libdir}/*.so.* %files devel %defattr (-, root, root) -%doc %dir %{_docdir}/%{name} -%doc %{_docdir}/%{name}/api +%doc %{_docdir}/%{name}-devel %{_includedir}/*.h %{_libdir}/*.so %{_libdir}/*.*a %{_libdir}/pkgconfig/*.pc %changelog +* Tue Aug 19 2008 sbrabec@suse.cz +- Updated to version 0.2.4: + * Build system rewritten + * added PKCS11_CTX_init_args + * fix segfault in init_args code + * implemented PKCS11_private_encrypt +- Fixed incorrect API. +- Fixed x86_64 issues. * Thu Apr 10 2008 ro@suse.de - added baselibs.conf file to build xxbit packages for multilib support