Crypto


Opis

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.

Przykłady

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)

API

http://jpalio.torn.com.pl/modules/palio/modules/Crypto.html