Learn R Programming

EQUALencrypt (version 0.1.0)

EQUAL_insert_signature_file: Insert digital signature for a file

Description

"Insert digital signature for a file using the private key generated by EQUAL_encrypt_generate_keys() function and openssl. This uses the SHA384 algorithm for the hash function."

Usage

EQUAL_insert_signature_file(file_name, private_key_folder, key_name)

Value

signature

Arguments

file_name

Name of the file for which signature must be inserted

private_key_folder

Location of the private key

key_name

Name of the private key

Author

Kurinchi Gurusamy

References

https://sites.google.com/view/equal-group/home

See Also

EQUAL_encrypt_generate_keys() openssl::signature_create() openssl::hashing()

Examples

Run this code
library(openssl)
# Encryption keys ####
test_folder <- tempfile(pattern = "folder_")
public_key_folder <- paste0(test_folder, "/public_key_folder")
private_key_folder <- paste0(test_folder, "/private_key_folder")
dir.create(test_folder)
dir.create(public_key_folder)
dir.create(private_key_folder)
encryption_keys <- EQUAL_encrypt_generate_keys(
  public_key_folder = public_key_folder,
  private_key_folder = private_key_folder,
  key_name = "encryption_key.txt")
# Data ####
data <- lapply(1:3, function(x) {
  mean = sample(1:100, 1, replace = FALSE)
  sd = sample(1:100, 1, replace = FALSE)
  rnorm(100, mean = mean, sd = sd)
})
data <- do.call(cbind.data.frame, data)
colnames(data) <- paste0("v", formatC(1:3, width = 6, flag = "0"))
test_file <- write.csv(data, paste0(tempdir(), "/test.csv"), row.names = FALSE,
na = "")
# Encrypt data ####
encrypted_data <- EQUAL_encrypt_file(file_name = paste0(tempdir(), "/test.csv"),
                                     public_key_folder = public_key_folder,
                                     key_name = "encryption_key.txt")
data_storage_folder <- paste0(test_folder, "/data_storage_folder")
dir.create(data_storage_folder)
saveRDS(encrypted_data, paste0(data_storage_folder, "/encrypted_file.RDS"))
# Insert signature ####
results <- EQUAL_insert_signature_file(file_name = paste0(data_storage_folder,
"/encrypted_file.RDS"), private_key_folder = private_key_folder,
                            key_name = "encryption_key.txt")

Run the code above in your browser using DataLab