Skip to content

Instantly share code, notes, and snippets.

View lkdocs's full-sized avatar

LaunchKey Documentation Examples lkdocs

View GitHub Profile
require 'openssl'
def sign_data(key, data)
key.sign(OpenSSL::Digest::SHA256.new, data)
end
require 'openssl'
def verify_sign(key, signature, data)
# Verifies with a public key that the data was signed with their private key
pubkey = key.public_key
if pubkey.verify(OpenSSL::Digest::SHA256.new, signature, data)
puts 'the signature is valid'
else
puts 'the signature is invalid'
end
end
require 'openssl'
def generate_RSA(bits=2048)
# Generates an RSA keypair
# @bits The key length in bits
OpenSSL::PKey::RSA.new(bits)
end
<?
public function rsa_encrypt($key, $message) {
$rsa = new Crypt_RSA();
$rsa->loadKey($key);
$encrypted = base64_encode($rsa->encrypt($message));
return $encrypted;
}
?>
<?
public function rsa_decrypt($key, $package) {
$rsa = new Crypt_RSA();
$rsa->loadKey($key);
$decrypted = $rsa->decrypt(base64_decode($package));
return $decrypted;
}
?>
<?
public function rsa_decrypt($key, $package) {
$rsa = new Crypt_RSA();
$rsa->setHash("sha256");
$rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
$rsa->loadKey($key);
$signature = base64_encode($rsa->sign(base64_decode($package)));
return $signature;
}
?>
<?
public function rsa_verify_sign($key, $signature, $package) {
$rsa = new Crypt_RSA();
$rsa->setHash("sha256");
$rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
$rsa->loadKey($key);
$verify = $rsa->verify(base64_decode($package), $signature);
return $verify;
}
?>
<?
public function rsa_generate($bits=2048) {
$rsa = new Crypt_RSA();
define('CRYPT_RSA_EXPONENT', 65537);
$keypair = $rsa->createKey($bits);
return $keypair;
}
?>
private byte[] encryptWithPublicKey(byte[] message, String publicKey) throws Exception {
String strippedKey = Crypto.stripPublicKeyHeaders(publicKey);
PublicKey apiPublicKey= Crypto.getRSAPublicKeyFromString(strippedKey);
Cipher rsaCipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA1AndMGF1Padding", "SC");
rsaCipher.init(Cipher.ENCRYPT_MODE, apiPublicKey);
return rsaCipher.doFinal(message);
}
public static byte[] decryptWithPrivateKey(byte[] message, String privateKey) throws Exception {
PrivateKey pKey = getRSAPrivateKeyFromString(privateKey);
Cipher rsaCipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA1AndMGF1Padding", "SC");
rsaCipher.init(Cipher.DECRYPT_MODE, pKey);
return rsaCipher.doFinal(message);
}