<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/18daccffb99835a479579fefec63fb0a360c870f">https://github.com/macports/macports-ports/commit/18daccffb99835a479579fefec63fb0a360c870f</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 18daccffb99 opensc: update to 0.23.0
</span>18daccffb99 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 18daccffb99835a479579fefec63fb0a360c870f
</span>Author: Yuriy Lukyanets <df@dflab.net>
AuthorDate: Sat Sep 9 15:12:47 2023 +0200
<span style='display:block; white-space:pre;color:#404040;'> opensc: update to 0.23.0
</span>---
security/opensc/Portfile | 10 +-
security/opensc/files/patch-pgp-and-tools.diff | 133 +++++++++++++++++++++++++
security/opensc/files/patch-winscard.diff | 14 ---
3 files changed, 138 insertions(+), 19 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/security/opensc/Portfile b/security/opensc/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index ae42f5245ad..6af8d9d4066 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/security/opensc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/security/opensc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6,12 +6,12 @@ PortGroup openssl 1.0
</span> PortGroup compiler_blacklist_versions 1.0
name opensc
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup OpenSC OpenSC 0.22.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup OpenSC OpenSC 0.23.0
</span> revision 0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 7796feadb78c57457eb97d9409be2fac36bf61e9 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 cbe0f660773458ca09b5167addca1f00c65cad424a906749f68eb34ceb6dcd0d \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 1790141
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 17ca6962955588a7a6c8aec0c20af7f2a93eb25c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 80b9b1c84bb740b0a69109744dbbe0c1f49ab918bbd9500c7f898167b8847fb9 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 1965242
</span>
categories security
license LGPL-2.1
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -46,7 +46,7 @@ depends_build port:docbook-xsl-nons \
</span>
default_variants +readline
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles patch-winscard.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles patch-winscard.diff patch-pgp-and-tools.diff
</span> patch.pre_args -p1
# https://trac.macports.org/ticket/65709
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/security/opensc/files/patch-pgp-and-tools.diff b/security/opensc/files/patch-pgp-and-tools.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..a86c22679e6
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/security/opensc/files/patch-pgp-and-tools.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,133 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Changes are taken from OpenSC master branch, most probably this patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# will not be needed after next release.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/libopensc/card-openpgp.c b/src/libopensc/card-openpgp.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index fad32f0c..e4e6cc4d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/libopensc/card-openpgp.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/libopensc/card-openpgp.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -129,7 +129,7 @@ static pgp_ec_curves_t ec_curves_gnuk[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int pgp_get_card_features(sc_card_t *card);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int pgp_finish(sc_card_t *card);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-static void pgp_iterate_blobs(pgp_blob_t *, void (*func)());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static void pgp_free_blobs(pgp_blob_t *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int pgp_get_blob(sc_card_t *card, pgp_blob_t *blob,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ unsigned int id, pgp_blob_t **ret);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -947,7 +947,7 @@ pgp_finish(sc_card_t *card)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (priv != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* delete fake file hierarchy */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- pgp_iterate_blobs(priv->mf, pgp_free_blob);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pgp_free_blobs(priv->mf);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* delete private data */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ free(priv);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1147,10 +1147,10 @@ pgp_free_blob(pgp_blob_t *blob)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /**
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * Internal: iterate through the blob tree, calling a function for each blob.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Internal: iterate through the blob tree, calling pgp_free_blob for each blob.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-pgp_iterate_blobs(pgp_blob_t *blob, void (*func)())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++pgp_free_blobs(pgp_blob_t *blob)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (blob) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pgp_blob_t *child = blob->files;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1158,10 +1158,10 @@ pgp_iterate_blobs(pgp_blob_t *blob, void (*func)())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while (child != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ pgp_blob_t *next = child->next;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- pgp_iterate_blobs(child, func);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pgp_free_blobs(child);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ child = next;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- func(blob);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ pgp_free_blob(blob);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/tools/cardos-tool.c b/src/tools/cardos-tool.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 4e6dd554..26959abb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/tools/cardos-tool.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/tools/cardos-tool.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1183,6 +1183,9 @@ int main(int argc, char *argv[])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (action_count == 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ util_print_usage_and_die(app_name, options, option_help, NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* create sc_context_t object */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ memset(&ctx_param, 0, sizeof(ctx_param));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ctx_param.ver = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/tools/netkey-tool.c b/src/tools/netkey-tool.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f2904ad1..ad82b282 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/tools/netkey-tool.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/tools/netkey-tool.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -535,6 +535,7 @@ int main(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fprintf(stderr,"Establish-Context failed: %s\n", sc_strerror(r));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ exit(1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ctx->debug = debug;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(ctx->debug>0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ printf("Context for application \"%s\" created, Debug=%d\n", ctx->app_name, ctx->debug);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/tools/pkcs11-tool.c b/src/tools/pkcs11-tool.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index aae205fe..8402fe39 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/tools/pkcs11-tool.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/tools/pkcs11-tool.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7315,41 +7315,42 @@ static int test_random(CK_SESSION_HANDLE session)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ printf(" seeding (C_SeedRandom) not supported\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else if (rv != CKR_OK) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ p11_perror("C_SeedRandom", rv);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ errors++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rv = p11->C_GenerateRandom(session, buf1, 10);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (rv != CKR_OK) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ p11_perror("C_GenerateRandom", rv);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ errors++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rv = p11->C_GenerateRandom(session, buf1, 100);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (rv != CKR_OK) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ p11_perror("C_GenerateRandom(buf1,100)", rv);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ errors++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rv = p11->C_GenerateRandom(session, buf1, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (rv != CKR_OK) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ p11_perror("C_GenerateRandom(buf1,0)", rv);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ errors++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rv = p11->C_GenerateRandom(session, buf2, 100);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (rv != CKR_OK) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ p11_perror("C_GenerateRandom(buf2,100)", rv);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return 1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ errors++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (memcmp(buf1, buf2, 100) == 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ printf(" ERR: C_GenerateRandom returned twice the same value!!!\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- errors++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ errors++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- printf(" seems to be OK\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if (!errors)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ printf(" seems to be OK\n");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return errors;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static int test_card_detection(int wait_for_event)
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/security/opensc/files/patch-winscard.diff b/security/opensc/files/patch-winscard.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index 54dff4d10b3..5360b0bb786 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/security/opensc/files/patch-winscard.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/security/opensc/files/patch-winscard.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -21,17 +21,3 @@ diff --git a/src/libopensc/internal-winscard.h b/src/libopensc/internal-winscard
</span> #include <winscard.h>
#ifdef __APPLE__
#include <wintypes.h>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/libopensc/reader-pcsc.c b/src/libopensc/reader-pcsc.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- a/src/libopensc/reader-pcsc.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ b/src/libopensc/reader-pcsc.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -182,8 +182,10 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return SC_ERROR_CARD_UNRESPONSIVE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case SCARD_E_SHARING_VIOLATION:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return SC_ERROR_READER_LOCKED;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#ifdef SCARD_E_NO_READERS_AVAILABLE
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case SCARD_E_NO_READERS_AVAILABLE:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return SC_ERROR_NO_READERS_FOUND;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- case SCARD_E_UNKNOWN_READER:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return SC_ERROR_READER_DETACHED;
</span></pre><pre style='margin:0'>
</pre>