<commit_before>== YKCS11
This is a PKCS#11 module that allows to communicate with the PIV
application running on a YubiKey.

This module is based on version 2.40 of the PKCS#11 (Cryptoki)
specifications.

The complete specifications are available at
https://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html.

=== BUILDING
YKCS11 is automatically built as part of `yubico-piv-tool` and the
following command will suffice:

  $ autoreconf --install
  $ ./configure
  $ make
  $ sudo make install

More info about building yubico-piv-tool can be found in the related
`README` file or over at
https://developers.yubico.com/yubico-piv-tool/.

Once installed, the module will be found by default in
/usr/local/lib/libykcs11.so otherwise it will be built locally in
yubico-piv-tool/ykcs11/.libs/libykcs11.so

=== PORTABILITY
The module has been developed and tested using Debian GNU/Linux and
Ubuntu Linux. It is however possible to cross-compile it for Windows
and Mac OS X using the relative makefiles (windows.mk and mac.mk).
Both use PCSC as a backend.

Keep in mind that communication with the YubiKey is carried out over
the CCID transport. Hence, on Mac OS X the YubiKey should be
whitelisted (more info at https://github.com/Yubico/ifd-yubico).

Further testing at this stage has *not* been carried out, so
additional tweaks might be needed to use operating systems different
from Linux.

=== SUPPORTED FUNCTIONALITY AND KNOWN ISSUES
YKCS11 is not a full implementation of PKCS#11. Some functionality are
not present and others are not yet implemented.

In its current form YKCS11 implements a smaller subset of
functionality:

- RSA key generation +
  1024 or 2048 bit keys can be generated;

- EC key generation +
  curve prime256v1 is supported (256 bit keys);

- RSA signature +
  supported mechanisms are RSA-X-509 (raw RSA), PKCS1 (unhashed),
  PKCS1 with SHA1/256/384/512 and PSS with SHA1/256/384/512. The
  latter is implemented but has not been tested, hence is provided as
  is;

- ECDSA signature +
  supported mechanism are ECDSA (raw) and ECDSA with SHA1;

- RSA and EC public key (X.509 certificate) import;
<commit_msg>Remove note about ifd-yubico.<commit_after>== YKCS11
This is a PKCS#11 module that allows to communicate with the PIV
application running on a YubiKey.

This module is based on version 2.40 of the PKCS#11 (Cryptoki)
specifications.

The complete specifications are available at
https://docs.oasis-open.org/pkcs11/pkcs11-base/v2.40/os/pkcs11-base-v2.40-os.html.

=== BUILDING
YKCS11 is automatically built as part of `yubico-piv-tool` and the
following command will suffice:

  $ autoreconf --install
  $ ./configure
  $ make
  $ sudo make install

More info about building yubico-piv-tool can be found in the related
`README` file or over at
https://developers.yubico.com/yubico-piv-tool/.

Once installed, the module will be found by default in
/usr/local/lib/libykcs11.so otherwise it will be built locally in
yubico-piv-tool/ykcs11/.libs/libykcs11.so

=== PORTABILITY
The module has been developed and tested using Debian GNU/Linux and
Ubuntu Linux. It is however possible to cross-compile it for Windows
and Mac OS X using the relative makefiles (windows.mk and mac.mk).
Both use PCSC as a backend.

Further testing at this stage has *not* been carried out, so
additional tweaks might be needed to use operating systems different
from Linux.

=== SUPPORTED FUNCTIONALITY AND KNOWN ISSUES
YKCS11 is not a full implementation of PKCS#11. Some functionality are
not present and others are not yet implemented.

In its current form YKCS11 implements a smaller subset of
functionality:

- RSA key generation +
  1024 or 2048 bit keys can be generated;

- EC key generation +
  curve prime256v1 is supported (256 bit keys);

- RSA signature +
  supported mechanisms are RSA-X-509 (raw RSA), PKCS1 (unhashed),
  PKCS1 with SHA1/256/384/512 and PSS with SHA1/256/384/512. The
  latter is implemented but has not been tested, hence is provided as
  is;

- ECDSA signature +
  supported mechanism are ECDSA (raw) and ECDSA with SHA1;

- RSA and EC public key (X.509 certificate) import;

{'fraction_non_alphanumeric': 0.0680830516658619, 'fraction_numerical': 0.038145823273780785, 'mean_word_length': 3.991566265060241, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 5, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1658055', 'n_tokens_mistral': 1396, 'n_tokens_neox': 1265, 'n_words': 562}