Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Towards new release 0.19.0 #1448

Closed
Jakuje opened this issue Aug 15, 2018 · 27 comments
Closed

Towards new release 0.19.0 #1448

Jakuje opened this issue Aug 15, 2018 · 27 comments

Comments

@Jakuje
Copy link
Member

Jakuje commented Aug 15, 2018

With #1447 and many other features from recent months, it is time to prepare next release.

Below you'll find a draft for an update of the NEWS file. Let me know if I missed something or something can be worded better.

What is not covered in the news, but I would really like to see reviewed and merged is #1435 (RSA-PSS using RAW RSA), which will soon be demanded feature mostly for TSL1.3.


General Improvements

PKCS#11

Minidriver

  • Allow cancelling the PIN pad prompt before starting the reader transaction. Whether to start the transaction immediately or not is user-configurable for each application

OpenSC tools

  • opensc-notify
    • add Exit button to tray icon
    • User better description (GenericName) and a generic application icon
    • Do not display in the application list
  • pkcs15-tool
    • added support for reading ECDSA ssh keys
  • p11test
    • Filter certificates other than CKC_X_509
  • opengpg-tool
    • allow calling -d multiple times
    • clarify usage text

sc-hsm

  • Implement RSA PSS
  • Add support for SmartCard-HSM 4K (V3.0)

CAC

  • Remove support for CAC1 cards
  • Ignore unknown tags in properties buffer
  • Use GET PROPERTIES to recognize buffer formats
  • Unbreak encoding last tag-len-value in the data objects
  • Support HID Alt tokens without CCC
    • They present certificates in OIDs of first AID and use other undocumented applets
    • Inspect the tokens through the ACA applet and GET ACR APDU

Coolkey

  • Unbreak Get Challenge functionality
  • Make uninitialized cards working as expected with ESC

OpenPGP

Starcos

CardOS

  • create PIN in MF (pkcs15init)

German ID card

PIV

  • Context Specific Login Using Pin Pad Reader Fix
  • Better Handling of Reset using Discovery Object

The list of changes and commits since last release so far:
0.18.0...master

@Jakuje Jakuje changed the title Towards new release 0.18.x [WIP] Towards new release Aug 15, 2018
@Jakuje Jakuje changed the title [WIP] Towards new release Towards new release Aug 15, 2018
@Jakuje Jakuje changed the title Towards new release Towards new release 0.19.0 Aug 16, 2018
@frankmorgner
Copy link
Member

Thanks for the great starter 👍

I'd like to leave out some technical details and be more specific about the change in the minidriver. If you agree, I'll directly edit the problem description, OK?

@frankmorgner
Copy link
Member

FYI, @OpenSC/core @OpenSC/maintainers

I'll test #1447 next week, but I think #1435 should wait until next release.

@Jakuje
Copy link
Member Author

Jakuje commented Aug 19, 2018

Sure. This was mostly copy paste from commit messages that I considered important, but I don't quite much anything know about the minidriver so feel free to use better wording by directly editing the issue.

@frankmorgner
Copy link
Member

I've updated the description. @Jakuje , could you review the CAC/Coolkey description from a user perspective (NEWS will contain only user visible changes).

@Jakuje
Copy link
Member Author

Jakuje commented Aug 20, 2018

I fixed a typo and removed the reference to security issues as not covered. CAC/Coolkey sections look good to me.

@alonbl
Copy link
Member

alonbl commented Sep 1, 2018

Hi,

I experience the following:

make[3]: Entering directory '/var/tmp/portage/dev-libs/opensc-0.19.0/work/opensc-0.19.0/doc/files'
sed -e 's|@pkgdatadir[@]|/usr/share/opensc|g' < pkcs15-profile.5.xml \
| xsltproc --nonet --path "./..:/usr/share/sgml/docbook/xsl-stylesheets/manpages" --xinclude -o pkcs15-profile.5 man.xsl pkcs15-profile.5.xml
Warn: meta author : no refentry/info/author                        pkcs15-profile
Note: meta author : see http:https://docbook.sf.net/el/author            pkcs15-profile
Warn: meta author : no author data, so inserted a fixme            pkcs15-profile
Note: Writing pkcs15-profile.5
sed \
        -e 's|@sysconfdir[@]|/etc|g' \
        -e 's|@docdir[@]|/usr/share/doc/opensc-0.19.0|g' \
        -e 's|@libdir[@]|/usr/lib64|g' \
        -e 's|@DYN_LIB_EXT[@]|.so|g' \
        -e 's|@DEFAULT_PCSC_PROVIDER[@]|libpcsclite.so.1|g' \
        -e 's|@PROFILE_DIR_DEFAULT[@]|/usr/share/opensc|g' \
        -e 's|@DEFAULT_SM_MODULE[@]||g' \
        < opensc.conf.5.xml.in > opensc.conf.5.xml
xsltproc --nonet --path "./..:/usr/share/sgml/docbook/xsl-stylesheets/manpages" --xinclude -o opensc.conf.5 man.xsl opensc.conf.5.xml
Warn: meta author : no refentry/info/author                        opensc.conf
Note: meta author : see http:https://docbook.sf.net/el/author            opensc.conf
Warn: meta author : no author data, so inserted a fixme            opensc.conf
Note: Writing opensc.conf.5
make[3]: *** No rule to make target 'files.xml', needed by 'files.html'.  Stop.
make[3]: Leaving directory '/var/tmp/portage/dev-libs/opensc-0.19.0/work/opensc-0.19.0/doc/files'
make[2]: *** [Makefile:441: all-recursive] Error 1
make[2]: Leaving directory '/var/tmp/portage/dev-libs/opensc-0.19.0/work/opensc-0.19.0/doc'
make[1]: *** [Makefile:562: all-recursive] Error 1

Configure:

./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-dependency-tracking --disable-silent-rules --docdir=/usr/share/doc/opensc-0.19.0 --htmldir=/usr/share/doc/opensc-0.19.0/html --libdir=/usr/lib64 --docdir=/usr/share/doc/opensc-0.19.0 --htmldir=$(docdir)/html --disable-static --disable-openpace --enable-doc --disable-openct --enable-readline --enable-zlib --disable-sm --enable-openssl --enable-pcsc --disable-openct --disable-ctapi

Regards,
Alon

@frankmorgner
Copy link
Member

@alonbl should be fixed with 62a2847

@alonbl
Copy link
Member

alonbl commented Sep 4, 2018 via email

@frankmorgner
Copy link
Member

I don't see this problem in CI nor on my machine... How are you building the package? Were you using https://github.com/OpenSC/Nightly/blob/2018-09-04_62a28473/opensc-0.19.0.tar.gz?raw=true?

Could you check on libressl?

@alonbl
Copy link
Member

alonbl commented Sep 5, 2018 via email

@frankmorgner
Copy link
Member

Please tell me how to reproduce this...

@alonbl
Copy link
Member

alonbl commented Sep 5, 2018 via email

@frankmorgner
Copy link
Member

please check as fast as possible, because there are a number of security fixes with this release.

@dengert
Copy link
Member

dengert commented Sep 5, 2018

In response to #1448 (comment) I can get the same error when building separate source and build directories:

sed ...
	< ../../../src/doc/files/opensc.conf.5.xml.in > opensc.conf.5.xml
xsltproc --nonet --path "../../../src/doc/files/..:/usr/share/xml/docbook/stylesheet/nwalsh/manpages" --xinclude -o opensc.conf.5 man.xsl opensc.conf.5.xml
Warn: meta author : no refentry/info/author                        opensc.conf
Note: meta author : see http:https://docbook.sf.net/el/author            opensc.conf
Warn: meta author : no author data, so inserted a fixme            opensc.conf
Note: Writing opensc.conf.5
xsltproc --nonet --path "../../../src/doc/files/..:/usr/share/xml/docbook/stylesheet/nwalsh/html" --xinclude -o files.html html.xsl ../../../src/doc/files/files.xml
warning: failed to load external entity "../../../src/doc/files/opensc.conf.5.xml"
../../../src/doc/files/files.xml:8: element include: XInclude error : could not load ../../../src/doc/files/opensc.conf.5.xml, and no fallback was found
Makefile:639: recipe for target 'files.html' failed

But only if I specified --enable-doc It appears --disable-doc is the default.

The problem appears to be the above line is looking for ../../../src/doc/files/opensc.conf.5.xml but the
file is in the build directory.

Adding "./" to the path fixes it. Need to do a ./bootstrap.

diff --git a/doc/files/Makefile.am b/doc/files/Makefile.am
index d12091c..3960d9e 100644
--- a/doc/files/Makefile.am
+++ b/doc/files/Makefile.am
@@ -22,7 +22,7 @@ opensc.conf.5.xml opensc.conf.5: $(srcdir)/opensc.conf.5.xml.in
        $(XSLTPROC) --nonet --path "$(srcdir)/..:$(xslstylesheetsdir)/manpages" --xinclude -o $@ man.xsl opensc.conf.5.xml
 
 files.html: $(srcdir)/files.xml $(wildcard $(srcdir)/*.5.xml) opensc.conf.5.xml
-       $(XSLTPROC) --nonet --path "$(srcdir)/..:$(xslstylesheetsdir)/html" --xinclude -o $@ html.xsl $<
+       $(XSLTPROC) --nonet --path "./:$(srcdir)/..:$(xslstylesheetsdir)/html" --xinclude -o $@ html.xsl $<
 
 %.5: $(srcdir)/%.5.xml
        sed -e 's|@pkgdatadir[@]|$(pkgdatadir)|g' < $< \
Note: Writing opensc.conf.5
xsltproc --nonet --path "./:../../../src/doc/files/..:/usr/share/xml/docbook/stylesheet/nwalsh/html" --xinclude -o files.html html.xsl ../../../src/doc/files/files.xml
make[3]: Leaving directory '/afs/anl.gov/appl/OpenSC-dev/build/opensc-git-my/amd64_linux26-1.1/doc/files'

@frankmorgner
Copy link
Member

Thanks, Doug! Building in a separate folder was the missing hint. It's fixed now.

@frankmorgner
Copy link
Member

updated the description

@alonbl
Copy link
Member

alonbl commented Sep 7, 2018

master build success. thanks!

@metsma
Copy link
Contributor

metsma commented Sep 12, 2018

Please merge this to 0.19.0 #1477

@Jakuje
Copy link
Member Author

Jakuje commented Sep 12, 2018

I updated the test results with my cards:

https://github.com/OpenSC/OpenSC/wiki/Smart-Card-Release-Testing

All of them work well. The only issues I noticed were the following:

  • Muscle driver loaded before coolkey "steals" the detection. We already talked about this issue before and I was hoping the muscle driver will move on to the "old" and disabled drivers. Or is there a way to move coolkey up or muscle down in the list?
  • The example line in default opensc.conf has missing semicolon (opensc.conf: Make the example syntax correct #1478)

@frankmorgner
Copy link
Member

Unfortunately the muscle driver still seems to be used often... We've moved the MUSCLE driver up the detection list, because this applet always return 9000, no matter what AID was used for selection. This would make the muscle applet be detected as any other applet based card (58b6cc0).

I wonder why the muscle driver matches for a coolkey card. Did I miss some discussion?

@Jakuje
Copy link
Member Author

Jakuje commented Sep 12, 2018

It is most probably because coolkey is based on muscle applet so it behaves similarly in this way.
I hit this issue last time in #1377, where the coolkey applet was detected in CAC driver and after skipping that one, we ended up in sc-hsm or muscle. I am not sure if I was not debugging or reporting this issue earlier, but our QE hit this from time to time.

@frankmorgner
Copy link
Member

I would have nothing against detecting coolkey first, but if the applet has the same bug, this means that muscle card will be mistakenly identified as coolkey cards. Unfortunately, this is only treating the symptoms; a real fix should be applied in the applets' implementations. Is there some maintainer of the coolkey applet who can help?

@Jakuje
Copy link
Member Author

Jakuje commented Sep 13, 2018

@dengert tried to analyze this in #1377 (comment) but there was no outcome since none of us is Java Card expert. Notably, this issue does not express when the card is plugged in the reader and only after that the card is accessed by the OpenSC. The issue happens only soon after hot-plug (wait for slot event and then start detection) or after reset (fast disconnect and connect from p11tests), which makes me think that it is problem of the platform itself, rather than problem of either of applets,

I can try to bring this to Bob, who might have some idea but even if we would fix it in the applet, there are many enrolled cards in the wild so we should really modify the card detection to request some content and not only the 90 00 from the card select.

Anyway, this is not a regression, since this was behaving the same also in previous releases. Is there still anything that needs to be done before release or when we can expect one, when the CVEs are already assigned?

@frankmorgner
Copy link
Member

OK, done

@Jakuje
Copy link
Member Author

Jakuje commented Sep 13, 2018

Please, lets have also the home page of the wiki updated with the new release links and information. I can do it tomorrow, if nobody else will pick it up.

@frankmorgner
Copy link
Member

done

@alonbl
Copy link
Member

alonbl commented Sep 15, 2018

hi,
In future, if a file is missing in distribution, in this case p11test_common.h, please release z-stream for traball.
thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants