Skip to content

jeroen/openssl

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
R
 
 
 
 
man
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

openssl

Toolkit for Encryption, Signatures and Certificates Based on OpenSSL

CRAN_Status_Badge CRAN RStudio mirror downloads

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.

Hello World

Download and verify an SSL certrificate:

library(openssl)
cert <- download_ssl_cert("www.r-project.org")
cert_verify(cert, ca_bundle())
print(cert)
as.list(cert[[1]])

Encrypt a secret message using someone's RSA public key:

# Generate test keys
key <- rsa_keygen()
pubkey <- as.list(key)$pubkey

# Encrypt tempkey using receivers public RSA key
secret <- charToRaw("TTIP is evil")
ciphertext <- rsa_encrypt(secret, pubkey)

# Receiver decrypts secret from private her RSA key
rawToChar(rsa_decrypt(ciphertext, key))

Create a signature using your RSA private key:

# Sign a file with your private key
myfile <- system.file("DESCRIPTION")
sig <- signature_create(myfile, key = key)

# Others can verify form your public key
signature_verify(myfile, sig, pubkey = pubkey)

Installation

Binary packages for OS-X or Windows can be installed directly from CRAN:

install.packages("openssl")

Installation from source on Linux requires openssl. On Debian or Ubuntu use libssl-dev:

sudo apt-get install -y libssl-dev

On Fedora, CentOS or RHEL use openssl-devel:

sudo yum install openssl-devel

On OS-X we need openssl from homebrew, which may be installed as:

brew install openssl

To check which version you are running (run in a fresh terminal):

openssl version -a

About

OpenSSL bindings for R

Resources

License

Unknown and 2 other licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md
MIT
COPYING

Stars

Watchers

Forks

Packages

No packages published

Languages