Public Key Infrastucture for R Based on the X.509 Standard

PKI functions such as verifying certificates, RSA encription and signing which can be used to build PKI infrastructure and perform cryptographic tasks.


NEWS for PKI package

0.1-5 (under development) o use configure/autoconf

o	macOS: fetch OpenSSL headers from Apple if not available
in the SDK

0.1-4 o add support for explicit setting of initialization vectors (iv) in PKI.encrypt() and PKI.decrypt() for ciphers that support it. (see #16)

o	add PKI.random() for generating cryptographically strong
random bytes which can be used for keys, IVs, seeds etc.

o	adapt to API changes in OpenSSL 1.1 (see also PR#18)

0.1-3 2015-07-28 o fixed crash when loading private keys introduced by PR#1 in (unreleased) 0.1-2 and bring back the ability to directly read "DER"-encoded private RSA keys.

o	fix detection of PKCS#8 encrypted private keys in PEM format

0.1-2 (not released) o add "DER" format option to PKI.load.cert()

o	allow key in PKI.verify to be a certificate
(which will be passed to PKI.pubkey() internally)

o	add experimental signing/verification of tar files using
PKI.sign.tar() and PKI.verify.tar()

o	add support for symmetric ciphers like AES in

o	add support for retrieving the subject of a certificate
via PKI.get.subject() [PR#2, thanks to Matt Jones]

o	add support for PKCS#8 private key format (RFC 5208)
and sign/verify/digest using SHA256.
[PR#1, thanks to Siddhartha Bagaria]

o	bugfix: key length was incorrectly checked when using
symmetric ciphers so too short keys were accepted.

o	bugfix: if the last block was filled during encryption, the
necessary additional padding block was not generated. (#8)

o	bugfix: some functions did not call PKI initialization.
One manifestation was that error messages were cryptic until
any X.509 function was called. (#9)

0.1-1 2013-02-19 o added PKI.load.key() and functions to load/save keys from/to PEM and DER formats

IMPORTANT API NOTE: PKI.load.key() replaces the
(unexported) function PKI.load.privkey()
in the previous PKI version.

o	added support for OpenSSH public key format
(as used in .ssh/authorized_keys files)
as well as pure PKCS#1 and SSH2 PEMs

o	make PEM parsing more robust to support

o	added ASN.1 tools to parse and synthesize ASN.1
formatted objects - mostly for use in key format

o	added as.BIGNUMint() for ASN.1 BIGNUM integer
format conversion

o	added PKI.mkRSApubkey() to create RSA public keys
from modulus and exponent alone

o	added raw2hex() function to convert raw hashes
into string format

0.1-0 2012-11-05 o first public release

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.1-7 by Simon Urbanek, 4 months ago

Browse source code at

Authors: Simon Urbanek <[email protected]>

Documentation:   PDF Manual  

GPL-2 | GPL-3 | file LICENSE license

Depends on base64enc

Enhances gmp

System requirements: OpenSSL library and headers (openssl-dev or similar)

Imported by rfml.

Suggested by plumber.

See at CRAN