# openssl 2.4.2 (CRAN)

Toolkit for Encryption, Signatures and Certificates Based on OpenSSL

[Record of 2.4.2](/cran/openssl/v/2.4.2.md) | Compare: [With 2.4.1](/cran/openssl/compare/2.4.1...2.4.2.md), [With another package](/compare/openssl.md#add), [Downloads](/downloads/compare/openssl.md#add) | [Licences](/cran/openssl/licences.md) | [SBOM](/cran/openssl/sbom.md)

Install from CRAN: `install.packages("openssl")`

Also from:

- r2u (Ubuntu binaries): `sudo apt install r-cran-openssl` _Listed from recorded download activity on this channel, not from a live index, so read it as last known. Bioconductor packages are named r-bioc-<name> there._
- Fedora COPR (iucar/cran): `sudo dnf install R-CRAN-openssl` _A rebuild of what CRAN lists, so it can lag CRAN by a rebuild._
- autoCRAN (openSUSE): `sudo zypper install R-openssl` _Listed from recorded download activity on this channel, not from a live index, so read it as last known._
- conda-forge: `conda install -c conda-forge r-openssl` _Listed from recorded download activity on this channel, not from a live index, so read it as last known._

- CRAN checks: All OK (13 platforms)
- CRAN 30-day downloads: 874K (down 8.3% on the 30 days before, the worse direction)
- Dependent packages: 111 (41 more suggest it)
- Test coverage: 79% (of lines run by tests)
- Advisories: None known

## About

[Method](/about/licenses.md)

Bindings to OpenSSL libssl and libcrypto, plus custom SSH key parsers. Supports RSA, DSA and EC curves P-256, P-384, P-521, and curve25519. Cryptographic signatures can either be created and verified manually or via x509 certificates.

**Full description**

Bindings to OpenSSL libssl and libcrypto, plus custom SSH key parsers. Supports RSA, DSA and EC curves P-256, P-384, P-521, and curve25519. Cryptographic signatures can either be created and verified manually or via x509 certificates. AES can be used in cbc, ctr or gcm mode for symmetric encryption; RSA for asymmetric (public key) encryption or EC for Diffie Hellman. High-level envelope functions combine RSA and AES for encrypting arbitrary sized data. Other utilities include key generators, hash functions (md5, sha1, sha256, etc), base64 encoder, a secure random number generator, and 'bignum' math methods for manually performing crypto calculations on large multibyte integers.

- Maintainer: Jeroen Ooms
- Licence: [MIT + file LICENSE](/licences/MIT.md)
- Latest release: 9 Jun 2026
- First release: 21 Oct 2014

- [Website](https://jeroen.r-universe.dev/openssl)
- [CRAN page](https://cran.r-project.org/package=openssl)
- [Source repository](https://github.com/jeroen/openssl)
- [Issues](https://github.com/jeroen/openssl/issues)
- [Source of every release](https://github.com/cran/openssl)

[Compare with another package](/compare/openssl.md#add)

**More details**

- Releases: 54
- Needs compilation: Yes
- Config/roxygen2/version: 8.0.0
- SystemRequirements: OpenSSL >= 1.0.2

**Cite**

#### Package

Run in R for the authors' preferred citation:

`citation("openssl")`

APA: Ooms, J., & Keyes, O. (2026). openssl: Toolkit for Encryption, Signatures and Certificates Based on
OpenSSL (Version 2.4.2) [Computer software]. https://doi.org/10.32614/CRAN.package.openssl

BibTeX:

```
@Manual{openssl,
  title  = {openssl: Toolkit for Encryption, Signatures and Certificates Based on
OpenSSL},
  author = {Ooms, Jeroen and Keyes, Oliver},
  year   = {2026},
  note   = {R package version 2.4.2},
  doi    = {10.32614/CRAN.package.openssl},
  url    = {https://CRAN.R-project.org/package=openssl}
}
```

This package has no citation file, so `citation()` returns this entry built from `DESCRIPTION`.

#### R Observatory

For a number measured here: a download total, a coverage figure, an archival date.

APA: Balamuta, J. J. (2026). R Observatory: Metrics for openssl version 2.4.2 [Data set]. HJJB, LLC. Data release v2026-10-28. https://doi.org/10.5281/zenodo.21843040

BibTeX:

```
@misc{robservatoryopenssl,
  author    = {Balamuta, James Joseph},
  title     = {{R} {Observatory}: Metrics for {openssl} version 2.4.2},
  year      = {2026},
  publisher = {HJJB, LLC},
  doi       = {10.5281/zenodo.21843040},
  url       = {https://r-observatory.thecoatlessprofessor.com/packages/openssl},
  note      = {Data set. Data release v2026-10-28}
}
```

From data release v2026-10-28, which the citation names so these numbers can be found later.

## Health

[Method](/about/checks-health.md)

All 13 check platforms pass.

13 CRAN platforms: 13 OK.

Platforms now:

- r-devel-linux-x86_64-debian-clang: OK
- r-devel-linux-x86_64-debian-gcc: OK
- r-devel-linux-x86_64-fedora-clang: OK
- r-devel-linux-x86_64-fedora-gcc: OK
- r-devel-windows-x86_64: OK
- r-oldrel-macos-arm64: OK
- r-oldrel-macos-x86_64: OK
- r-oldrel-windows-x86_64: OK
- r-patched-linux-x86_64: OK
- r-release-linux-x86_64: OK
- r-release-macos-arm64: OK
- r-release-macos-x86_64: OK
- r-release-windows-x86_64: OK

#### Over time

No change since 5 Aug 2026

**As a list (6)**

| Changed | Worst status | OK | Notes | Warnings | Errors |
| --- | --- | ---: | ---: | ---: | ---: |
| 5 Aug 2026 | OK | 13 | 0 | 0 | 0 |
| 1 Aug 2026 | Note | 12 | 1 | 0 | 0 |
| 8 Jun 2026 | OK | 13 | 0 | 0 | 0 |
| 7 Jun 2026 | Note | 12 | 1 | 0 | 0 |
| 25 Apr 2026 | OK | 12 | 0 | 0 | 0 |
| 10 Mar 2026 | Note | 11 | 3 | 0 | 0 |

Since March 2026

[Check results on CRAN](https://cran.r-project.org/web/checks/check_results_openssl.html)

## Downloads

[Method](/about/downloads.md)

- Downloads in the last 30 days: 1,151,546 (up 1.6% on the 30 days before, the better direction. It is the sum of 5 channels: CRAN, r2u, autoCRAN, conda-forge and c2d4u.)

CRAN alone: rank among CRAN packages, last 30 days: 66 of 26,530.

| Channel | Downloads in the last 30 days | In the total | Rank in that channel | Change |
| --- | ---: | --- | --- | --- |
| CRAN | 874,258 | yes | 66 of 26,530 | down 8.3% on the 30 days before, the worse direction |
| r2u | 52,233 | yes | 36 of 30,526 | up 95.2% on the 30 days before, the better direction |
| autoCRAN | 315 | yes | 24 of 29,212 | up 10.5% on the 30 days before, the better direction |
| conda-forge | 223,443 | yes | 42 of 3,828 | up 47.1% on the 30 days before, the better direction |
| c2d4u | 1,297 | yes | 58 of 7,575 | down 6.8% on the 30 days before, the worse direction |

Other windows: [Last 90 days](/cran/openssl.md?win=90d#downloads), [Last 365 days](/cran/openssl.md?win=365d#downloads), [All time](/cran/openssl.md?win=all#downloads).

To leave channels out of the total, name them in the address, joined by dots: `?off=conda_forge.c2d4u`.

#### Over time

Downloads over time, the last 12 whole months:

| Month | CRAN | r2u | autoCRAN | conda-forge | c2d4u | Sum |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| Oct 2025 | 1,137,152 | 16,068 | no figure | 67,648 | 3,102 | 1,223,970 |
| Nov 2025 | 1,212,364 | 11,288 | no figure | 64,853 | 1,834 | 1,290,339 |
| Dec 2025 | 991,832 | 11,001 | no figure | 53,971 | 3,466 | 1,060,270 |
| Jan 2026 | 954,712 | 10,526 | no figure | 58,441 | 2,167 | 1,025,846 |
| Feb 2026 | 896,920 | 15,151 | no figure | 57,696 | 2,777 | 972,544 |
| Mar 2026 | 1,054,492 | 40,648 | no figure | 78,541 | 1,991 | 1,175,672 |
| Apr 2026 | 1,086,186 | 32,844 | no figure | 89,466 | 1,704 | 1,210,200 |
| May 2026 | 959,416 | 25,609 | no figure | 300,965 | 33 | 1,286,023 |
| Jun 2026 | 960,337 | 23,679 | no figure | 180,668 | no figure | 1,164,684 |
| Jul 2026 | 953,280 | 23,389 | 347 | 226,488 | 929 | 1,204,433 |
| Aug 2026 | 1,022,546 | 27,282 | 363 | 154,218 | 1,412 | 1,205,821 |
| Sep 2026 | 1,005,112 | 52,074 | 259 | 223,443 | 1,265 | 1,282,153 |

First day on record: CRAN 21 Oct 2014, r2u 5 May 2022, autoCRAN 29 Jun 2026, conda-forge 29 Apr 2017, c2d4u 24 Nov 2014 (no longer updated).

Every channel here counts downloads, so the channels can be stacked and summed for one period. Each channel counts in its own way and covers a different span of years, so read a sum as a rough total, and read a rise where a channel begins as that channel starting, not as growth.

Weeks start on Monday. A first or last week or month that the channel does not cover in full is left out, so every point is a whole period.

Days with no record add nothing to their week or month. For a little-used package that is usually a day with no downloads, but it can also be a gap in collection.

[Compare downloads](/downloads/compare/openssl.md#add)

## Dependencies

[Method](/about/reverse-dependencies.md)

- Needs: 1
- Dependent packages: 111
- Suggested by: 41

**Needs (1)**

- [askpass](/cran/askpass.md)

- Installing it adds: 2 packages, 25 KB of source
- Of those, need compilation: 2

**Optional extras (8)**

- [curl](/cran/curl.md)
- [digest](/cran/digest.md)
- [jose](/cran/jose.md)
- [jsonlite](/cran/jsonlite.md)
- [knitr](/cran/knitr.md)
- [rmarkdown](/cran/rmarkdown.md)
- [sodium](/cran/sodium.md)
- [testthat](/cran/testthat.md)

**Dependent packages (50 of 111)**

| Package | Title | Downloads in 30 days |
| --- | --- | ---: |
| [httr](/cran/httr.md) | Tools for Working with URLs and HTTP | 1,041,920 |
| [gargle](/cran/gargle.md) | Utilities for Working with Google APIs | 434,630 |
| [httr2](/cran/httr2.md) | Perform HTTP Requests and Process the Responses | 364,590 |
| [ids](/cran/ids.md) | Generate Random Identifiers | 306,671 |
| [pkgdown](/cran/pkgdown.md) | Make Static HTML Documentation for a Package | 202,899 |
| [gert](/cran/gert.md) | Simple Git Client for R | 177,822 |
| [credentials](/cran/credentials.md) | Tools for Managing SSH and Git Credentials | 138,580 |
| [officer](/cran/officer.md) | Manipulation of Microsoft Word and PowerPoint Documents | 101,445 |
| [jose](/cran/jose.md) | JavaScript Object Signing and Encryption | 71,401 |
| [rsconnect](/cran/rsconnect.md) | Deploy Docs, Apps, and APIs to 'Posit Connect', 'shinyapps.io', and 'RPubs' | 51,413 |
| [snowflakeauth](/cran/snowflakeauth.md) | Authentication Helpers for 'Snowflake' | 44,856 |
| [AzureAuth](/cran/AzureAuth.md) | Authentication Services for Azure Active Directory | 32,682 |
| [AzureGraph](/cran/AzureGraph.md) | Simple Interface to 'Microsoft Graph' | 28,022 |
| [sparklyr](/cran/sparklyr.md) | R Interface to Apache Spark | 24,101 |
| [umap](/cran/umap.md) | Uniform Manifold Approximation and Projection | 12,435 |
| [AzureStor](/cran/AzureStor.md) | Storage Management in 'Azure' | 9,101 |
| [googleCloudStorageR](/cran/googleCloudStorageR.md) | Interface with Google Cloud Storage API | 8,984 |
| [mongolite](/cran/mongolite.md) | Fast and Simple 'MongoDB' Client for R | 8,204 |
| [base64](/cran/base64.md) | Base64 Encoder and Decoder | 8,194 |
| [mlflow](/cran/mlflow.md) | Interface to 'MLflow' | 4,948 |
| [mcptools](/cran/mcptools.md) | Model Context Protocol Servers and Clients | 2,657 |
| [shinymanager](/cran/shinymanager.md) | Authentication Management for 'Shiny' Applications | 2,511 |
| [AzureKeyVault](/cran/AzureKeyVault.md) | Key and Secret Management in 'Azure' | 2,094 |
| [contentid](/cran/contentid.md) | An Interface for Content-Based Identifiers | 1,817 |
| [distill](/cran/distill.md) | 'R Markdown' Format for Scientific and Technical Writing | 1,462 |
| [rcdf](/cran/rcdf.md) | A Comprehensive Toolkit for Working with Encrypted Parquet Files | 1,307 |
| [bcrypt](/cran/bcrypt.md) | 'Blowfish' Key Derivation and Password Hashing | 1,246 |
| [AzureKusto](/cran/AzureKusto.md) | Interface to 'Kusto'/'Azure Data Explorer' | 1,213 |
| [opencpu](/cran/opencpu.md) | Producing and Reproducing Results | 1,029 |
| [ows4R](/cran/ows4R.md) | Interface to OGC Web-Services (OWS) | 1,013 |
| [wilson](/cran/wilson.md) | Web-Based Interactive Omics Visualization | 929 |
| [GWalkR](/cran/GWalkR.md) | Interactive Exploratory Data Analysis Tool | 926 |
| [adobeanalyticsr](/cran/adobeanalyticsr.md) | R Client for 'Adobe Analytics' API 2.0 | 711 |
| [geonapi](/cran/geonapi.md) | 'GeoNetwork' API R Interface | 626 |
| [SCDB](/cran/SCDB.md) | Easily Access and Maintain Time-Based Versioned Data (Slowly-Changing-Dimension) | 614 |
| [epidatr](/cran/epidatr.md) | Client for Delphi's 'Epidata' API | 611 |
| [shinyOAuth](/cran/shinyOAuth.md) | OIDC Authentication and OAuth Authorization for 'shiny' Applications | 605 |
| [geosapi](/cran/geosapi.md) | GeoServer REST API R Interface | 597 |
| [kmer](/cran/kmer.md) | Fast K-Mer Counting and Clustering for Biological Sequence Analysis | 588 |
| [cyphr](/cran/cyphr.md) | High Level Encryption Wrappers | 573 |
| [AzureContainers](/cran/AzureContainers.md) | Interface to 'Container Instances', 'Docker Registry' and 'Kubernetes' in 'Azure' | 569 |
| [aphid](/cran/aphid.md) | Analysis with Profile Hidden Markov Models | 530 |
| [AzureQstor](/cran/AzureQstor.md) | Interface to 'Azure Queue Storage' | 519 |
| [rtemis](/cran/rtemis.md) | Schema-Driven Machine Learning and Visualization | 519 |
| [surveyframe](/cran/surveyframe.md) | Survey Instrument Workflows | 490 |
| [insect](/cran/insect.md) | Informatic Sequence Classification Trees | 486 |
| [sship](/cran/sship.md) | Tool for Secure Shipment of Content | 484 |
| [orderly](/cran/orderly.md) | Lightweight Reproducible Reporting | 483 |
| [telegram.bot](/cran/telegram.bot.md) | Develop a 'Telegram Bot' with R | 471 |
| [earthdatalogin](/cran/earthdatalogin.md) | NASA 'EarthData' Access Utilities | 464 |

## Code

[Method](/about/code-metrics.md)

Selected function: `read_key`

- Kind: Public R function
- File: R/read.R, line 40
- Lines: 29
- Complexity: 10
- Covered by tests: 81%

Called by 12: [`read_pubkey`](/cran/openssl.md?fn=read_pubkey&view=focus#code) (78% of lines run by tests), [`my_key`](/cran/openssl.md?fn=my_key&view=focus#code) (75% of lines run by tests), [`ec_dh`](/cran/openssl.md?fn=ec_dh&view=focus#code) (0% of lines run by tests), [`signature_create`](/cran/openssl.md?fn=signature_create&view=focus#code) (88% of lines run by tests), [`decrypt_envelope`](/cran/openssl.md?fn=decrypt_envelope&view=focus#code) (100% of lines run by tests), [`pkcs7_decrypt`](/cran/openssl.md?fn=pkcs7_decrypt&view=focus#code) (100% of lines run by tests), [`read_p12`](/cran/openssl.md?fn=read_p12&view=focus#code) (100% of lines run by tests), [`rsa_decrypt`](/cran/openssl.md?fn=rsa_decrypt&view=focus#code) (100% of lines run by tests), [`rsa_sign`](/cran/openssl.md?fn=rsa_sign&view=focus#code) (100% of lines run by tests), [`write_p12`](/cran/openssl.md?fn=write_p12&view=focus#code) (67% of lines run by tests), [`x25519_diffie_hellman`](/cran/openssl.md?fn=x25519_diffie_hellman&view=focus#code) (0% of lines run by tests), [`ed25519_sign`](/cran/openssl.md?fn=ed25519_sign&view=focus#code) (0% of lines run by tests)

Calls 9: [`read_input`](/cran/openssl.md?fn=read_input&view=focus#code) (61% of lines run by tests), [`derive_pubkey`](/cran/openssl.md?fn=derive_pubkey&view=focus#code) (100% of lines run by tests), [`pubkey_type`](/cran/openssl.md?fn=pubkey_type&view=focus#code) (100% of lines run by tests), [`parse_openssh_key_private`](/cran/openssl.md?fn=parse_openssh_key_private&view=focus#code) (84% of lines run by tests), [`pem_names`](/cran/openssl.md?fn=pem_names&view=focus#code) (100% of lines run by tests), [`is_pubkey_str`](/cran/openssl.md?fn=is_pubkey_str&view=focus#code) (100% of lines run by tests), [`parse_legacy_key`](/cran/openssl.md?fn=parse_legacy_key&view=focus#code) (100% of lines run by tests), [`parse_pem_key`](/cran/openssl.md?fn=parse_pem_key&view=focus#code) (100% of lines run by tests), [`parse_der_key`](/cran/openssl.md?fn=parse_der_key&view=focus#code) (100% of lines run by tests)

Paths: 2 steps each way.

Called by 12:

- [`read_pubkey`](/cran/openssl.md?fn=read_pubkey&view=focus#code), called by 8
  - [`cert_verify`](/cran/openssl.md?fn=cert_verify&view=focus#code)
  - [`my_pubkey`](/cran/openssl.md?fn=my_pubkey&view=focus#code), called by 3
  - [`ec_dh`](/cran/openssl.md?fn=ec_dh&view=focus#code), called by 1
  - [`signature_verify`](/cran/openssl.md?fn=signature_verify&view=focus#code)
  - [`encrypt_envelope`](/cran/openssl.md?fn=encrypt_envelope&view=focus#code)
  - [`rsa_encrypt`](/cran/openssl.md?fn=rsa_encrypt&view=focus#code)
  - [`x25519_diffie_hellman`](/cran/openssl.md?fn=x25519_diffie_hellman&view=focus#code)
  - [`ed25519_verify`](/cran/openssl.md?fn=ed25519_verify&view=focus#code)
- [`my_key`](/cran/openssl.md?fn=my_key&view=focus#code), called by 6
  - [`my_pubkey`](/cran/openssl.md?fn=my_pubkey&view=focus#code), called by 3
  - [`ec_dh`](/cran/openssl.md?fn=ec_dh&view=focus#code), called by 1
  - [`signature_create`](/cran/openssl.md?fn=signature_create&view=focus#code)
  - [`decrypt_envelope`](/cran/openssl.md?fn=decrypt_envelope&view=focus#code)
  - [`rsa_decrypt`](/cran/openssl.md?fn=rsa_decrypt&view=focus#code)
  - [`rsa_sign`](/cran/openssl.md?fn=rsa_sign&view=focus#code)
- [`ec_dh`](/cran/openssl.md?fn=ec_dh&view=focus#code), called by 1
  - [`x25519_diffie_hellman`](/cran/openssl.md?fn=x25519_diffie_hellman&view=focus#code)
- [`signature_create`](/cran/openssl.md?fn=signature_create&view=focus#code)
- [`decrypt_envelope`](/cran/openssl.md?fn=decrypt_envelope&view=focus#code)
- [`pkcs7_decrypt`](/cran/openssl.md?fn=pkcs7_decrypt&view=focus#code)
- [`read_p12`](/cran/openssl.md?fn=read_p12&view=focus#code)
- [`rsa_decrypt`](/cran/openssl.md?fn=rsa_decrypt&view=focus#code)
- [`rsa_sign`](/cran/openssl.md?fn=rsa_sign&view=focus#code)
- [`write_p12`](/cran/openssl.md?fn=write_p12&view=focus#code)
- [`x25519_diffie_hellman`](/cran/openssl.md?fn=x25519_diffie_hellman&view=focus#code)
- [`ed25519_sign`](/cran/openssl.md?fn=ed25519_sign&view=focus#code)

Calls 9:

- [`read_input`](/cran/openssl.md?fn=read_input&view=focus#code), calls 2
  - [`stopifnot`](/cran/openssl.md?fn=stopifnot&view=focus#code)
  - [`is_pubkey_str`](/cran/openssl.md?fn=is_pubkey_str&view=focus#code)
- [`derive_pubkey`](/cran/openssl.md?fn=derive_pubkey&view=focus#code), calls 1
  - [`R_derive_pubkey`](/cran/openssl.md?fn=R_derive_pubkey&view=focus#code), calls 1
- [`pubkey_type`](/cran/openssl.md?fn=pubkey_type&view=focus#code), calls 1
  - [`R_pubkey_type`](/cran/openssl.md?fn=R_pubkey_type&view=focus#code)
- [`parse_openssh_key_private`](/cran/openssl.md?fn=parse_openssh_key_private&view=focus#code), calls 5
  - [`aes_decrypt`](/cran/openssl.md?fn=aes_decrypt&view=focus#code), calls 2
  - [`parse_openssh_key_data`](/cran/openssl.md?fn=parse_openssh_key_data&view=focus#code), calls 4
  - [`ssh_build_privkey`](/cran/openssl.md?fn=ssh_build_privkey&view=focus#code), calls 5
  - [`bcrypt_pbkdf`](/cran/openssl.md?fn=bcrypt_pbkdf&view=focus#code), calls 3
  - [`parse_openssh_kdfoptions`](/cran/openssl.md?fn=parse_openssh_kdfoptions&view=focus#code), calls 1
- [`pem_names`](/cran/openssl.md?fn=pem_names&view=focus#code), calls 1
  - [`parse_pem`](/cran/openssl.md?fn=parse_pem&view=focus#code), calls 2
- [`is_pubkey_str`](/cran/openssl.md?fn=is_pubkey_str&view=focus#code)
- [`parse_legacy_key`](/cran/openssl.md?fn=parse_legacy_key&view=focus#code), calls 2
  - [`parse_pem_key`](/cran/openssl.md?fn=parse_pem_key&view=focus#code), calls 1
  - [`R_parse_pem_key_pkcs1`](/cran/openssl.md?fn=R_parse_pem_key_pkcs1&view=focus#code), calls 1
- [`parse_pem_key`](/cran/openssl.md?fn=parse_pem_key&view=focus#code), calls 1
  - [`R_parse_pem_key`](/cran/openssl.md?fn=R_parse_pem_key&view=focus#code), calls 1
- [`parse_der_key`](/cran/openssl.md?fn=parse_der_key&view=focus#code), calls 1
  - [`R_parse_der_key`](/cran/openssl.md?fn=R_parse_der_key&view=focus#code), calls 1

The open file in the files map is `R/read.R`.

- Functions: 24
- Lines: 213
- Calls that stay inside it: 29
- Calls to other files: 32, to 8
- Calls from other files: 40, from 14

It calls: `R/openssh.R` (9 calls), `src/pem.c` (6 calls), `src/keys.c` (5 calls), `R/ssh2.R` (4 calls), `R/info.R` (3 calls), `R/stopifnot.R` (2 calls), `R/hash.R` (2 calls), `R/cert.R` (1 call)

Called from: `R/pkcs12.R` (6 calls), `R/cert.R` (5 calls), `R/x25519.R` (4 calls), `R/envelope.R` (4 calls), `R/signing.R` (4 calls), `R/pkcs7.R` (3 calls), `R/rsa.R` (3 calls), `R/aes.R` (2 calls), `R/list.R` (2 calls), `R/diffie.R` (2 calls), `R/mykey.R` (2 calls), `R/ssh2.R` (1 call), and 2 more

| Function in read.R | Calls in other files |
| --- | --- |
| [`read_key`](/cran/openssl.md?fn=read_key&view=focus#code) selected | [`parse_openssh_key_private`](/cran/openssl.md?fn=parse_openssh_key_private&view=focus#code), [`pubkey_type`](/cran/openssl.md?fn=pubkey_type&view=focus#code) |
| [`print.cert`](/cran/openssl.md?fn=print.cert&view=focus#code) | [`cert_info`](/cran/openssl.md?fn=cert_info&view=focus#code), [`fips_mode`](/cran/openssl.md?fn=fips_mode&view=focus#code), [`md5`](/cran/openssl.md?fn=md5&view=focus#code), [`sha1`](/cran/openssl.md?fn=sha1&view=focus#code) |
| [`print.key`](/cran/openssl.md?fn=print.key&view=focus#code) | [`fingerprint`](/cran/openssl.md?fn=fingerprint&view=focus#code), [`fips_mode`](/cran/openssl.md?fn=fips_mode&view=focus#code), [`pubkey_bitsize`](/cran/openssl.md?fn=pubkey_bitsize&view=focus#code), [`pubkey_type`](/cran/openssl.md?fn=pubkey_type&view=focus#code) |
| [`print.pubkey`](/cran/openssl.md?fn=print.pubkey&view=focus#code) | [`fingerprint`](/cran/openssl.md?fn=fingerprint&view=focus#code), [`fips_mode`](/cran/openssl.md?fn=fips_mode&view=focus#code), [`pubkey_bitsize`](/cran/openssl.md?fn=pubkey_bitsize&view=focus#code), [`pubkey_type`](/cran/openssl.md?fn=pubkey_type&view=focus#code) |
| [`read_pubkey`](/cran/openssl.md?fn=read_pubkey&view=focus#code) | [`parse_openssh`](/cran/openssl.md?fn=parse_openssh&view=focus#code), [`parse_openssh_key_pubkey`](/cran/openssl.md?fn=parse_openssh_key_pubkey&view=focus#code), [`parse_ssh_pem`](/cran/openssl.md?fn=parse_ssh_pem&view=focus#code), [`pubkey_type`](/cran/openssl.md?fn=pubkey_type&view=focus#code) |

**More functions (19)**

| Function in read.R | Calls in other files |
| --- | --- |
| [`cert_pubkey`](/cran/openssl.md?fn=cert_pubkey&view=focus#code) | [`R_cert_pubkey`](/cran/openssl.md?fn=R_cert_pubkey&view=focus#code), [`pubkey_type`](/cran/openssl.md?fn=pubkey_type&view=focus#code) |
| [`parse_pem`](/cran/openssl.md?fn=parse_pem&view=focus#code) | [`R_parse_pem`](/cran/openssl.md?fn=R_parse_pem&view=focus#code), [`stopifnot`](/cran/openssl.md?fn=stopifnot&view=focus#code) |
| [`derive_pubkey`](/cran/openssl.md?fn=derive_pubkey&view=focus#code) | [`R_derive_pubkey`](/cran/openssl.md?fn=R_derive_pubkey&view=focus#code) |
| [`parse_der_cert`](/cran/openssl.md?fn=parse_der_cert&view=focus#code) | [`R_parse_der_cert`](/cran/openssl.md?fn=R_parse_der_cert&view=focus#code) |
| [`parse_der_key`](/cran/openssl.md?fn=parse_der_key&view=focus#code) | [`R_parse_der_key`](/cran/openssl.md?fn=R_parse_der_key&view=focus#code) |
| [`parse_der_pubkey`](/cran/openssl.md?fn=parse_der_pubkey&view=focus#code) | [`R_parse_der_pubkey`](/cran/openssl.md?fn=R_parse_der_pubkey&view=focus#code) |
| [`parse_legacy_key`](/cran/openssl.md?fn=parse_legacy_key&view=focus#code) | [`R_parse_pem_key_pkcs1`](/cran/openssl.md?fn=R_parse_pem_key_pkcs1&view=focus#code) |
| [`parse_legacy_pubkey`](/cran/openssl.md?fn=parse_legacy_pubkey&view=focus#code) | [`R_parse_pem_pubkey_pkcs1`](/cran/openssl.md?fn=R_parse_pem_pubkey_pkcs1&view=focus#code) |
| [`parse_pem_cert`](/cran/openssl.md?fn=parse_pem_cert&view=focus#code) | [`R_parse_pem_cert`](/cran/openssl.md?fn=R_parse_pem_cert&view=focus#code) |
| [`parse_pem_key`](/cran/openssl.md?fn=parse_pem_key&view=focus#code) | [`R_parse_pem_key`](/cran/openssl.md?fn=R_parse_pem_key&view=focus#code) |
| [`parse_pem_pubkey`](/cran/openssl.md?fn=parse_pem_pubkey&view=focus#code) | [`R_parse_pem_pubkey`](/cran/openssl.md?fn=R_parse_pem_pubkey&view=focus#code) |
| [`read_input`](/cran/openssl.md?fn=read_input&view=focus#code) | [`stopifnot`](/cran/openssl.md?fn=stopifnot&view=focus#code) |
| [`is_pubkey_str`](/cran/openssl.md?fn=is_pubkey_str&view=focus#code) | nothing outside this file |
| [`path_or_raw`](/cran/openssl.md?fn=path_or_raw&view=focus#code) | nothing outside this file |
| [`pem_names`](/cran/openssl.md?fn=pem_names&view=focus#code) | nothing outside this file |
| [`read_cert`](/cran/openssl.md?fn=read_cert&view=focus#code) | nothing outside this file |
| [`read_cert_bundle`](/cran/openssl.md?fn=read_cert_bundle&view=focus#code) | nothing outside this file |
| [`read_pem`](/cran/openssl.md?fn=read_pem&view=focus#code) | nothing outside this file |
| [`split_pem`](/cran/openssl.md?fn=split_pem&view=focus#code) | nothing outside this file |


2 files with no calls to or from another: `R/base.R`, `src/onload.c`.

The whole package has 394 function names in 57 files and 569 calls between them. Most calls between files: `R/bignum.R` and `src/bignum.c` (18 calls), `src/compatibility.c` and `src/openssh.c` (16 calls), `src/error.c` and `src/openssh.c` (13 calls), `src/bignum.c` and `src/error.c` (12 calls), `R/openssh.R` and `R/read.R` (10 calls).

Graph: the whole call graph has 367 function names that take part in a call and 569 calls between them, set out in 13 layers with callers before what they call. Of these calls, 1 closes a loop and runs the other way. 27 function names have no calls and are left out. Called by the most functions: `bail` (83), `stopifnot` (40), `rawstringhash` (14), `r2bignum` (13), `read_key` (12). Calling the most functions: `read_pubkey` (14), `read_key` (9), `cert_verify` (8), `as.list.pubkey` (6), `signature_create` (6).

Most connected functions: [`stopifnot`](/cran/openssl.md?fn=stopifnot&view=focus#code) 40, [`read_pubkey`](/cran/openssl.md?fn=read_pubkey&view=focus#code) 22, [`read_key`](/cran/openssl.md?fn=read_key&view=focus#code) 21, [`rawstringhash`](/cran/openssl.md?fn=rawstringhash&view=focus#code) 18, [`read_input`](/cran/openssl.md?fn=read_input&view=focus#code) 11, [`decompose`](/cran/openssl.md?fn=decompose&view=focus#code) 9

To select another function, add ?fn=NAME to this address.

The call graph also has an address of its own: /cran/openssl/graph.md?fn=read_key&view=focus

- Functions: 399
- Public exports: 79
- Lines of R code: 2,766
- Median complexity: 1

**Functions (399)**

| Function (sorted, low to high) | Kind | File | Lines | Complexity | Covered |
| --- | --- | --- | ---: | ---: | ---: |
| [`aes_cbc_decrypt`](/cran/openssl.md?fn=aes_cbc_decrypt#code) | Public | R/aes.R | 3 | 1 | 100% |
| [`aes_cbc_encrypt`](/cran/openssl.md?fn=aes_cbc_encrypt#code) | Public | R/aes.R | 3 | 1 | 100% |
| [`aes_ctr_decrypt`](/cran/openssl.md?fn=aes_ctr_decrypt#code) | Public | R/aes.R | 3 | 1 | 0% |
| [`aes_ctr_encrypt`](/cran/openssl.md?fn=aes_ctr_encrypt#code) | Public | R/aes.R | 3 | 1 | 0% |
| [`aes_gcm_decrypt`](/cran/openssl.md?fn=aes_gcm_decrypt#code) | Public | R/aes.R | 3 | 1 | 0% |
| [`aes_gcm_encrypt`](/cran/openssl.md?fn=aes_gcm_encrypt#code) | Public | R/aes.R | 3 | 1 | 0% |
| [`aes_keygen`](/cran/openssl.md?fn=aes_keygen#code) | Public | R/aes.R | 3 | 1 | 0% |
| [`base64_decode`](/cran/openssl.md?fn=base64_decode#code) | Public | R/base64.R | 12 | 3 | 75% |
| [`base64_encode`](/cran/openssl.md?fn=base64_encode#code) | Public | R/base64.R | 7 | 2 | 75% |
| [`bcrypt_pbkdf`](/cran/openssl.md?fn=bcrypt_pbkdf#code) | Public | R/bcrypt.R | 9 | 2 | 100% |
| [`bignum`](/cran/openssl.md?fn=bignum#code) | Public | R/bignum.R | 24 | 11 |  |
| [`bignum_mod_exp`](/cran/openssl.md?fn=bignum_mod_exp#code) | Public | R/bignum.R | 3 | 1 | 0% |

This page lists 1 to 12 of 399 functions. [Next](/cran/openssl.md?sort=name&order=asc&fpage=2#functions)

**Size and composition**

#### Lines by kind (10,100)

| Kind | Lines | Share |
| --- | ---: | ---: |
| R code | 2,766 | 27% |
| Tests | 2,040 | 20% |
| Documentation | 1,163 | 12% |
| Guides | 330 | 3% |
| Compiled code | 3,801 | 38% |

#### Lines by language

| Language | Lines | Share |
| --- | ---: | ---: |
| R | 3,989 | 40% |
| C | 3,801 | 38% |
| Rd | 1,163 | 12% |
| Other | 789 | 8% |
| Vignettes | 330 | 3% |
| Shell | 28 | 0.3% |

Languages are counted from file extensions.

- Files: 227
- R functions: 235
- Compiled functions: 164
- Object systems: S3: 58 methods

**Complexity**

- Median: 1
- Mean: 1.79
- Highest: 15
- Median lines per function: 4

_About complexity: Cyclomatic complexity counts the independent paths through a function: 1 is a straight line, higher is harder to test. R functions only._

**Call graph figures**

- R functions: 235
- Calls: 275
- Unconnected: 50
- Groups: 6

**Growth (54 releases)**

Total lines by release: from 82 (on 21 Oct 2014) to 10,100 (on 9 Jun 2026). The lowest is 82 and the highest is 10,100.

**Release changes**

[Both releases side by side](/cran/openssl/compare/2.4.1...2.4.2.md)

**2.4.1 to 2.4.2**, 14 May 2026 to 9 Jun 2026

- Files changed: 12
- Lines added: 129
- Lines deleted: 67
- Exports: 1 added, 0 removed

**Exports added (1)**

- `rsa_sign`

**Changed measures (18)**

| Measure | Subject | Before | After |
| --- | --- | ---: | ---: |
| Public exports | Structure | 78 | 79 |
| Total lines | Structure | 10,043 | 10,100 |
| Lines of R code | Structure | 2,752 | 2,766 |
| Lines of compiled code | Structure | 3,774 | 3,801 |
| Lines of tests | Structure | 2,033 | 2,040 |
| R functions | Languages | 234 | 235 |
| C functions | Languages | 162 | 164 |
| Compiled share | Languages | 38% | 38% |
| Lines of documentation | Documentation | 1,154 | 1,163 |
| Test lines per line of code | Testing | 0.74 | 0.74 |
| Exports named in tests | Testing | 73% | 75% |
| Mean complexity | Complexity | 1.8 | 1.79 |
| Lines per function (mean) | Complexity | 6.47 | 6.47 |
| Functions (nodes) | Call graph | 234 | 235 |
| Call edges | Call graph | 272 | 275 |
| Most connections on one function | Call graph | 39 | 40 |
| Mean connections | Call graph | 2.33 | 2.34 |
| Calls into compiled code | Call graph | 100 | 101 |

**Most changed files (12 of 12)**

| File | Lines added | Lines deleted |
| --- | ---: | ---: |
| `inst/doc/keys.html` | 24 | 24 |
| `inst/doc/bignum.html` | 16 | 16 |
| `src/rsa.c` | 27 | 0 |
| `MD5` | 11 | 11 |
| `inst/doc/secure_rng.html` | 9 | 9 |
| `R/rsa.R` | 14 | 0 |
| `man/rsa_encrypt.Rd` | 9 | 0 |
| `tests/testthat/test_keys_rsa.R` | 8 | 1 |
| `DESCRIPTION` | 4 | 4 |
| `inst/doc/crypto_hashing.html` | 2 | 2 |
| `NEWS` | 3 | 0 |
| `NAMESPACE` | 2 | 0 |

## Tests

[Method](/about/coverage.md)

The tests ran and coverage was measured.

- Lines run by tests: 79%
- Expressions run by tests: 78.5%
- Test cases: 107
- Exports named in tests: 74.7%

**Coverage by file (29)**

29 files measured, least covered first.

| File | Lines | Run by tests | Not run | Coverage |
|---|---:|---:|---:|---:|
| `R/diffie.R`, 1 function | 5 | 0 | 5 | 0% |
| `R/x25519.R`, 15 functions | 40 | 6 | 34 | 15% |
| `R/base.R`, 8 functions | 13 | 2 | 11 | 15% |
| `R/cert.R`, 6 functions | 30 | 9 | 21 | 30% |
| `R/init.R`, 2 functions | 13 | 4 | 9 | 31% |
| `R/rand.R`, 2 functions | 5 | 3 | 2 | 60% |
| `R/aes.R`, 11 functions | 26 | 17 | 9 | 65% |
| `R/hash.R`, 25 functions | 109 | 74 | 35 | 68% |
| `R/bignum.R`, 23 functions | 54 | 37 | 17 | 69% |
| `R/read.R`, 24 functions | 153 | 107 | 46 | 70% |
| `R/mykey.R`, 5 functions | 19 | 14 | 5 | 74% |
| `R/base64.R`, 2 functions | 12 | 9 | 3 | 75% |
| `R/keygen.R`, 5 functions | 10 | 8 | 2 | 80% |
| `R/sslctx.R`, 4 functions | 11 | 9 | 2 | 82% |
| `R/pkcs12.R`, 7 functions | 39 | 32 | 7 | 82% |
| `R/pkcs7.R`, 2 functions | 13 | 11 | 2 | 85% |
| `R/write.R`, 12 functions | 29 | 25 | 4 | 86% |
| `R/signing.R`, 6 functions | 26 | 23 | 3 | 88% |
| `R/openssh.R`, 27 functions | 72 | 65 | 7 | 90% |
| `R/ssh2.R`, 22 functions | 171 | 156 | 15 | 91% |
| `R/writessh.R`, 4 functions | 48 | 45 | 3 | 94% |
| `R/bcrypt.R`, 1 function | 7 | 7 | 0 | 100% |
| `R/build.R`, 6 functions | 6 | 6 | 0 | 100% |
| `R/envelope.R`, 2 functions | 11 | 11 | 0 | 100% |
| `R/info.R`, 2 functions | 3 | 3 | 0 | 100% |
| `R/list.R`, 3 functions | 33 | 33 | 0 | 100% |
| `R/rsa.R`, 3 functions | 14 | 14 | 0 | 100% |
| `R/stopifnot.R`, 1 function | 6 | 6 | 0 | 100% |
| `R/stream.R`, 6 functions | 12 | 12 | 0 | 100% |

Not measured, 29 files: `src/aes.c`, `src/base64.c`, `src/bcrypt/bcrypt_pbkdf.c`, `src/bcrypt/blowfish.c`, `src/bignum.c`, `src/cert.c`, `src/compatibility.c`, `src/diffie.c`, `src/envelope.c`, `src/error.c`, `src/hash.c`, `src/info.c`, `src/keygen.c`, `src/keys.c`, `src/onload.c`, `src/openssh.c`, `src/password.c`, `src/pbkdf.c`, `src/pem.c`, `src/pkcs7.c`, `src/pkcs12.c`, `src/rand.c`, `src/rsa.c`, `src/signing.c`, `src/ssl.c`, `src/stream.c`, `src/tests/main.c`, `src/write.c`, `src/x25519.c`.

**Coverage run**

- Lines counted: 990
- Lines the tests ran: 748
- Tests passed: Yes
- Measured with: covr 3.6.5 on R 4.6.1

**Test suite**

- Has tests: Yes
- Test frameworks: testthat
- Test cases: 107
- Lines of tests: 2,040
- Test lines per line of code: 0.74

## Documentation

[Method](/about/code-metrics.md)

- Exports documented: 100%
- Arguments documented: 100%
- Return value documented: 4.5%
- Help pages with examples: 73.9%
- Examples run in checks: 76.5%

**Guides (4)**

- [Cryptographic Hashing in R](https://cran.r-project.org/web/packages/openssl/vignettes/crypto_hashing.html)
- [Fun with bignum: how RSA encryption works](https://cran.r-project.org/web/packages/openssl/vignettes/bignum.html)
- [Generating Secure Random Numbers in R](https://cran.r-project.org/web/packages/openssl/vignettes/secure_rng.html)
- [Importing and exporting RSA/DSA/EC keys](https://cran.r-project.org/web/packages/openssl/vignettes/keys.html)

**Other documentation**

- README: No
- Release notes file: Yes
- Help pages: 23
- Lines of documentation: 1,163

## People

[Method](/about/author-identity.md)

- [Jeroen Ooms](/people/Jeroen+Ooms.md): Maintainer since 0.1 (2014), author. ORCID https://orcid.org/0000-0002-4035-0289
- [Oliver Keyes](/people/Oliver+Keyes.md): Contributor

## Repository

[Method](/about/repo-signals.md#figures)

[jeroen](/repos/jeroen.md) / [openssl](https://github.com/jeroen/openssl) on github.com

- Stars: 67 (no change on 30 days ago)
- Forks: 25
- Open issues: 20
- Last commit: 27 Oct 2026

**Activity**

- Commits: 839
- Open pull requests: 2
- Tagged releases: 27
- Latest tagged release: v2.2.0, 17 May 2024
- In development: Default branch at 2.4.3, ahead of CRAN 2.4.2 (checked 2026-10-25)
- Issues closed in: 2 days (median)
- Pull requests closed in: 0 days (median)
- Pull requests merged: 77%
- Created: 15 Oct 2014
- Licence file reads as: –

**Development practices (5)**

| Kind | Found |
| --- | --- |
| Continuous integration | GitHub Actions, R CMD check workflow The `R CMD check` workflow runs on Linux, macOS and Windows, and on R-devel |
| Docs source | GitHub Pages site last deployed 2017-03-14 |
| Lint, format, editor | RStudio project |
| Git structural | .gitattributes |

[Across jeroen](/repos/jeroen.md#practices)

## AI tools

[Method](/about/ai-tools.md)

#### Tools

| Tool | First seen | Found | Commits crediting it |
| --- | --- | --- | ---: |
| **Claude Code** | 14 Jun 2026 | Named in .Rbuildignore: .claude | at least 2 |

#### Models

| Model | Commits | First commit | Last commit | Credit lines of |
| --- | ---: | --- | --- | --- |
| **Claude Opus 5.5** | 2 | 25 Oct 2026 | 25 Oct 2026 | Claude Code |

[Across jeroen](/repos/jeroen.md#ai)

## History

[Method](/about/archive.md)

The line runs from the first release of openssl on 21 Oct 2014 to 28 Oct 2026 and marks all 54 of its releases.

| Version | Released | R |
| --- | --- | ---: |
| [2.4.2](/cran/openssl/v/2.4.2.md) current | 9 Jun 2026 | 4.6.0 |
| [2.4.1](/cran/openssl/v/2.4.1.md) | 14 May 2026 | 4.6.0 |
| [2.4.0](/cran/openssl/v/2.4.0.md) | 15 Apr 2026 | 4.5.3 |
| [2.3.5](/cran/openssl/v/2.3.5.md) | 26 Feb 2026 | 4.5.2 |
| [2.3.4](/cran/openssl/v/2.3.4.md) | 30 Sep 2025 | 4.5.1 |
| [2.3.3](/cran/openssl/v/2.3.3.md) | 26 May 2025 | 4.5.0 |
| [2.3.2](/cran/openssl/v/2.3.2.md) | 3 Feb 2025 | 4.4.2 |
| [2.3.1](/cran/openssl/v/2.3.1.md) | 9 Jan 2025 | 4.4.2 |

**Earlier versions (46)**

| Version | Released | R |
| --- | --- | ---: |
| [2.3.0](/cran/openssl/v/2.3.0.md) | 16 Dec 2024 | 4.4.2 |
| [2.2.2](/cran/openssl/v/2.2.2.md) | 20 Sep 2024 | 4.4.1 |
| [2.2.1](/cran/openssl/v/2.2.1.md) | 16 Aug 2024 | 4.4.1 |
| [2.2.0](/cran/openssl/v/2.2.0.md) | 16 May 2024 | 4.4.0 |
| [2.1.2](/cran/openssl/v/2.1.2.md) | 21 Apr 2024 | 4.3.3 |
| [2.1.1](/cran/openssl/v/2.1.1.md) | 25 Sep 2023 | 4.3.1 |
| [2.1.0](/cran/openssl/v/2.1.0.md) | 15 Jul 2023 | 4.3.1 |
| [2.0.6](/cran/openssl/v/2.0.6.md) | 10 Mar 2023 | 4.2.2 |
| [2.0.5](/cran/openssl/v/2.0.5.md) | 6 Dec 2022 | 4.2.2 |
| [2.0.4](/cran/openssl/v/2.0.4.md) | 17 Oct 2022 | 4.2.1 |
| [2.0.3](/cran/openssl/v/2.0.3.md) | 14 Sep 2022 | 4.2.1 |
| [2.0.2](/cran/openssl/v/2.0.2.md) | 24 May 2022 | 4.2.0 |
| [2.0.1](/cran/openssl/v/2.0.1.md) | 14 May 2022 | 4.2.0 |
| [2.0.0](/cran/openssl/v/2.0.0.md) | 2 Mar 2022 | 4.1.2 |
| [1.4.6](/cran/openssl/v/1.4.6.md) | 19 Dec 2021 | 4.1.2 |
| [1.4.5](/cran/openssl/v/1.4.5.md) | 2 Sep 2021 | 4.1.1 |
| [1.4.4](/cran/openssl/v/1.4.4.md) | 30 Apr 2021 | 4.0.5 |
| [1.4.3](/cran/openssl/v/1.4.3.md) | 18 Sep 2020 | 4.0.2 |
| [1.4.2](/cran/openssl/v/1.4.2.md) | 27 Jun 2020 | 4.0.0 |
| [1.4.1](/cran/openssl/v/1.4.1.md) | 18 Jul 2019 | 3.6.1 |
| [1.4](/cran/openssl/v/1.4.md) | 31 May 2019 | 3.6.0 |
| [1.3](/cran/openssl/v/1.3.md) | 22 Mar 2019 | 3.5.3 |
| [1.2.2](/cran/openssl/v/1.2.2.md) | 1 Mar 2019 | 3.5.2 |
| [1.2.1](/cran/openssl/v/1.2.1.md) | 17 Jan 2019 | 3.5.2 |
| [1.2](/cran/openssl/v/1.2.md) | 17 Jan 2019 | 3.5.2 |
| [1.1](/cran/openssl/v/1.1.md) | 15 Nov 2018 | 3.5.0 |
| [1.0.2](/cran/openssl/v/1.0.2.md) | 30 Jul 2018 | 3.5.0 |
| [1.0.1](/cran/openssl/v/1.0.1.md) | 3 Mar 2018 | 3.4.3 |
| [1.0](/cran/openssl/v/1.0.md) | 2 Feb 2018 | 3.4.3 |
| [0.9.9](/cran/openssl/v/0.9.9.md) | 10 Nov 2017 | 3.4.2 |
| [0.9.8](/cran/openssl/v/0.9.8.md) | 3 Nov 2017 | 3.4.2 |
| [0.9.7](/cran/openssl/v/0.9.7.md) | 6 Sep 2017 | 3.4.1 |
| [0.9.6](/cran/openssl/v/0.9.6.md) | 31 Dec 2016 | 3.3.2 |
| [0.9.5](/cran/openssl/v/0.9.5.md) | 28 Oct 2016 | 3.3.1 |
| [0.9.4](/cran/openssl/v/0.9.4.md) | 25 May 2016 | 3.3.0 |
| [0.9.3](/cran/openssl/v/0.9.3.md) | 4 May 2016 | 3.3.0 |
| [0.9.2](/cran/openssl/v/0.9.2.md) | 26 Feb 2016 | 3.2.3 |
| [0.9.1](/cran/openssl/v/0.9.1.md) | 18 Jan 2016 | 3.2.3 |
| [0.9](/cran/openssl/v/0.9.md) | 13 Jan 2016 | 3.2.3 |
| [0.8](/cran/openssl/v/0.8.md) | 15 Dec 2015 | 3.2.3 |
| [0.6](/cran/openssl/v/0.6.md) | 18 Nov 2015 | 3.2.2 |
| [0.5](/cran/openssl/v/0.5.md) | 15 Nov 2015 | 3.2.2 |
| [0.4](/cran/openssl/v/0.4.md) | 11 May 2015 | 3.2.0 |
| [0.3](/cran/openssl/v/0.3.md) | 7 Jan 2015 | 3.1.2 |
| [0.2](/cran/openssl/v/0.2.md) | 7 Nov 2014 | 3.1.2 |
| [0.1](/cran/openssl/v/0.1.md) | 21 Oct 2014 | 3.1.1 |

**Release notes (2.4.2)**

- Added rsa_sign() to bypass FIPS when using legacy hashes

---

R Observatory is independent of the R Project, CRAN and Bioconductor. The same page for people is at /cran/openssl, and every address is listed at /llms.txt.
