From 79d66aea14dc3d60457c6dd41ceabd1dfcee3401 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Wed, 5 Sep 2018 12:33:28 -0700 Subject: opensc: Upgrade to 0.18.0 * Fixes build with OpenSSL 1.1.x * Fix build with gcc8 Signed-off-by: Khem Raj --- .../0001-Fixed-gcc-8-compilation-errors-1353.patch | 73 ++++++++++++++++++++++ meta-oe/recipes-support/opensc/opensc_0.16.0.bb | 44 ------------- meta-oe/recipes-support/opensc/opensc_0.18.0.bb | 47 ++++++++++++++ 3 files changed, 120 insertions(+), 44 deletions(-) create mode 100644 meta-oe/recipes-support/opensc/opensc/0001-Fixed-gcc-8-compilation-errors-1353.patch delete mode 100644 meta-oe/recipes-support/opensc/opensc_0.16.0.bb create mode 100644 meta-oe/recipes-support/opensc/opensc_0.18.0.bb (limited to 'meta-oe') diff --git a/meta-oe/recipes-support/opensc/opensc/0001-Fixed-gcc-8-compilation-errors-1353.patch b/meta-oe/recipes-support/opensc/opensc/0001-Fixed-gcc-8-compilation-errors-1353.patch new file mode 100644 index 0000000000..48d8327546 --- /dev/null +++ b/meta-oe/recipes-support/opensc/opensc/0001-Fixed-gcc-8-compilation-errors-1353.patch @@ -0,0 +1,73 @@ +From 87857d5cae7db94fdd776904886392b1e86053bd Mon Sep 17 00:00:00 2001 +From: Florian Bezdeka <1119693+fbezdeka@users.noreply.github.com> +Date: Fri, 18 May 2018 18:54:56 +0200 +Subject: [PATCH] Fixed gcc 8 compilation errors (#1353) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The following errors occured during a compilation using gcc 8: + +In function »gids_create_file.constprop«, + inserted by »gids_save_certificate.isra.8« beicard-gids.c:1548:7: +card-gids.c:465:2: Error: »strncpy« output may be truncated copying 8 bytes from a string of length 8 [-Werror=stringop-truncation] + strncpy(record->filename, filename, 8); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +pkcs15-oberthur.c: In function »sc_pkcs15emu_oberthur_add_prvkey«: +pkcs15-oberthur.c:741:5: Error: »strncpy« output may be truncated copying 254 bytes from a string of length 254 [-Werror=stringop-truncation] + strncpy(kobj.label, objs[ii]->label, sizeof(kobj.label) - 1); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Upstream-Status: Backport [https://github.com/OpenSC/OpenSC/pull/1353] +Signed-off-by Khem Raj +--- + src/libopensc/card-gids.c | 3 ++- + src/libopensc/pkcs15-oberthur.c | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/src/libopensc/card-gids.c b/src/libopensc/card-gids.c +index fc5d2a7..ac3e579 100644 +--- a/src/libopensc/card-gids.c ++++ b/src/libopensc/card-gids.c +@@ -33,6 +33,7 @@ Some features are undocumented like the format used to store certificates. They + + #include + #include ++#include "../common/compat_strlcpy.h" + + #ifdef ENABLE_OPENSSL + /* openssl only needed for card administration */ +@@ -462,7 +463,7 @@ static int gids_create_file(sc_card_t *card, char* directory, char* filename) { + memset(masterfilebuffer + offset, 0, sizeof(gids_mf_record_t)); + record = (gids_mf_record_t*) (masterfilebuffer + offset); + strncpy(record->directory, directory, 8); +- strncpy(record->filename, filename, 8); ++ strlcpy(record->filename, filename, sizeof(record->filename)); + record->fileIdentifier = fileIdentifier; + record->dataObjectIdentifier = dataObjectIdentifier; + +diff --git a/src/libopensc/pkcs15-oberthur.c b/src/libopensc/pkcs15-oberthur.c +index 4f841ed..3415be7 100644 +--- a/src/libopensc/pkcs15-oberthur.c ++++ b/src/libopensc/pkcs15-oberthur.c +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include "../common/compat_strlcpy.h" + + #include "pkcs15.h" + #include "log.h" +@@ -738,7 +739,7 @@ sc_pkcs15emu_oberthur_add_prvkey(struct sc_pkcs15_card *p15card, + unsigned int id = path.value[path.len - 2] * 0x100 + path.value[path.len - 1]; + + if (id == ccont.id_cert) { +- strncpy(kobj.label, objs[ii]->label, sizeof(kobj.label) - 1); ++ strlcpy(kobj.label, objs[ii]->label, sizeof(kobj.label)); + break; + } + } +-- +2.18.0 + diff --git a/meta-oe/recipes-support/opensc/opensc_0.16.0.bb b/meta-oe/recipes-support/opensc/opensc_0.16.0.bb deleted file mode 100644 index fd67181dc2..0000000000 --- a/meta-oe/recipes-support/opensc/opensc_0.16.0.bb +++ /dev/null @@ -1,44 +0,0 @@ -SUMMARY = "Smart card library and applications" -DESCRIPTION = "OpenSC is a tool for accessing smart card devices. Basic\ -functionality (e.g. SELECT FILE, READ BINARY) should work on any ISO\ -7816-4 compatible smart card. Encryption and decryption using private\ -keys on the smart card is possible with PKCS\ -such as the FINEID (Finnish Electronic IDentity) card. Swedish Posten\ -eID cards have also been confirmed to work." - -HOMEPAGE = "http://www.opensc-project.org/opensc/" -SECTION = "System Environment/Libraries" - -SRC_URI = "${DEBIAN_MIRROR}/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz" - -SRC_URI[md5sum] = "724d128f23cd7a74b28d04300ce7bcbd" -SRC_URI[sha256sum] = "3ac8c29542bb48179e7086d35a1b8907a4e86aca3de3323c2f48bd74eaaf5729" - -DEPENDS = "openct pcsc-lite virtual/libiconv openssl" - -LICENSE = "LGPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" - -inherit autotools pkgconfig - -EXTRA_OECONF = " \ - --disable-static \ - --enable-openct \ - --disable-pcsc \ - --disable-ctapi \ - --disable-doc \ -" -EXTRA_OEMAKE = "DESTDIR=${D}" - -RDEPENDS_${PN} = "readline" - -FILES_${PN} += "\ - ${libdir}/opensc-pkcs11.so \ - ${libdir}/onepin-opensc-pkcs11.so \ - ${libdir}/pkcs11-spy.so \ -" -FILES_${PN}-dev += "\ - ${libdir}/pkcs11/opensc-pkcs11.so \ - ${libdir}/pkcs11/onepin-opensc-pkcs11.so \ - ${libdir}/pkcs11/pkcs11-spy.so \ -" diff --git a/meta-oe/recipes-support/opensc/opensc_0.18.0.bb b/meta-oe/recipes-support/opensc/opensc_0.18.0.bb new file mode 100644 index 0000000000..c389e0bb58 --- /dev/null +++ b/meta-oe/recipes-support/opensc/opensc_0.18.0.bb @@ -0,0 +1,47 @@ +SUMMARY = "Smart card library and applications" +DESCRIPTION = "OpenSC is a tool for accessing smart card devices. Basic\ +functionality (e.g. SELECT FILE, READ BINARY) should work on any ISO\ +7816-4 compatible smart card. Encryption and decryption using private\ +keys on the smart card is possible with PKCS\ +such as the FINEID (Finnish Electronic IDentity) card. Swedish Posten\ +eID cards have also been confirmed to work." + +HOMEPAGE = "http://www.opensc-project.org/opensc/" +SECTION = "System Environment/Libraries" + +SRC_URI = "${DEBIAN_MIRROR}/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz \ + file://0001-Fixed-gcc-8-compilation-errors-1353.patch \ + " + +SRC_URI[md5sum] = "bce516f752e0db5327aa06cc0136fe27" +SRC_URI[sha256sum] = "6ef62b00e8fdbe3e386c3ee25c2cadb56c1931ea42f1a11dce8c947f51b45033" + +DEPENDS = "openct pcsc-lite virtual/libiconv openssl" + +LICENSE = "LGPLv2+" +LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34" + +inherit autotools pkgconfig + +S = "${WORKDIR}/OpenSC-${PV}" +EXTRA_OECONF = " \ + --disable-static \ + --enable-openct \ + --disable-pcsc \ + --disable-ctapi \ + --disable-doc \ +" +EXTRA_OEMAKE = "DESTDIR=${D}" + +RDEPENDS_${PN} = "readline" + +FILES_${PN} += "\ + ${libdir}/opensc-pkcs11.so \ + ${libdir}/onepin-opensc-pkcs11.so \ + ${libdir}/pkcs11-spy.so \ +" +FILES_${PN}-dev += "\ + ${libdir}/pkcs11/opensc-pkcs11.so \ + ${libdir}/pkcs11/onepin-opensc-pkcs11.so \ + ${libdir}/pkcs11/pkcs11-spy.so \ +" -- cgit 1.2.3-korg