Moduł Crypto jest modułem zawierającym zbiór funkcji kryptograficznych.
Moduł ten zawiera funkcje używane do generowania oraz sprawdzania skrótów (sum kontrolnych), generowania par kluczy publicznego i prywatnego oraz generowania i sprawdzania podpisów dla dokumentów.
Algorytmy obsługiwane przy generowaniu i sprawdzaniu skrótów:
Algorytmy dostępne dla generowania par kluczy w kryptografii asymetrycznej:
Klucze otrzymywane są jako tablice bajtów, można je przedstawić w reprezentacji tekstowej przy pomocy funkcji $util.toHexString.
Podpisy mogą mieć formaty PKCS#8 albo X.509.
Do wygenerowania podpisów można użyć par algorytmów:
Więcej szczegółów na temat obsługiwanych algorytmów: tutaj.
Utworzenie skrótu z dokumentu:
$=(@myText, "Something")
$=(@myBytes, $@myText.getBytes())
$util.toHexString($crypto.digest($@myBytes, "SHA-512"))
Podpisanie dokumentu, oraz sprawdzenie podpisu, przy użyciu wygenerowanych kluczy:
$=(@myText, "Something")
$=(@myBytes, $@myText.getBytes())
$=(@keyPairAlg, "RSA")
$=(@keyPairData, $crypto.generateKeyPair($@keyPairAlg, 512))
$=(@keyPub, [$@keyPairAlg, $@keyPairData[2], $@keyPairData[3]])
$=(@keyPrv, [$@keyPairAlg, $@keyPairData[0], $@keyPairData[1]])
$=(@mySignature, $crypto.signature($@myBytes, "MD5withRSA", $@keyPrv))
$crypto.checkSignature($@mySignature, $@myBytes, "MD5withRSA", $@keyPub)
$//check different document
$=(@myText2, "Somethig else")
$=(@myBytes2, $@myText2.getBytes())
$crypto.checkSignature($@mySignature, $@myBytes2, "MD5withRSA", $@keyPub)
$//check with differnt key
$=(@keyPairData2, $crypto.generateKeyPair($@keyPairAlg, 512))
$=(@keyPub2, [$@keyPairAlg, $@keyPairData2[2], $@keyPairData2[3]])
$crypto.checkSignature($@mySignature, $@myBytes, "MD5withRSA", $@keyPub2)