context("RSA signatures and encryption")
test_that("RSA PKCS1 signatures", {
key <- read_jwk("../keys/rsa-pkcs1.json")
pubkey <- read_jwk("../keys/rsa-pkcs1.pub.json")
data <- readBin("../keys/data", raw(), 1e4)
sig <- readBin("../keys/rsa-pkcs1.sig", raw(), 1e4)
expect_is(key, "key")
expect_is(pubkey, "pubkey")
expect_is(key, "rsa")
expect_is(pubkey, "rsa")
expect_identical(pubkey, as.list(key)$pubkey)
expect_true(openssl::signature_verify(data, sig, openssl::sha256, pubkey))
expect_true(openssl::signature_verify("../keys/data", "../keys/rsa-pkcs1.sig", openssl::sha256, pubkey))
})
test_that("RSA OAEP encryption", {
key <- read_jwk("../keys/rsa-oaep.json")
pubkey <- read_jwk("../keys/rsa-oaep.pub.json")
data <- readBin("../keys/data", raw(), 1e4)
bin <- readBin("../keys/rsa-oaep.bin", raw(), 1e4)
expect_is(key, "key")
expect_is(pubkey, "pubkey")
expect_is(key, "rsa")
expect_is(pubkey, "rsa")
## Does not work, rsa_decrypt does not use OAEP I think
#expect_identical(data, openssl::rsa_decrypt(bin, key))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.