palio.modules
Class Crypto

java.lang.Object
  extended by palio.modules.core.Module
      extended by palio.modules.Crypto
All Implemented Interfaces:
palio.modules.core.CurrentModuleDataKeys

public class Crypto
extends palio.modules.core.Module

Zbiór funkcji kryptograficznych.

Moduł jest dostępny w każdej instancji jPalio.

Version:
0.1.2
Author:
Mateusz Gembarzewski

Field Summary
 
Fields inherited from interface palio.modules.core.CurrentModuleDataKeys
DESIGNER_ACTIONS_BUFFER, HTML_FORM_BUILDER, HTML_MAP_BUILDER, HTML_MENU_BUILDER, HTML_TOOLTIPS_BUFFER, ITEXT_DOCUMENT, MAIL_MESSAGE, XLS_DOCUMENT, XML_DOCUMENT
 
Constructor Summary
Crypto(palio.Instance instance, java.util.Properties parameters)
           
 
Method Summary
static java.lang.Boolean checkDigest(byte[] digest, byte[] data, java.lang.String algorithm)
          Liczy sumę kontrolną i porównuje z podaną.
static java.lang.Boolean checkDigest(java.lang.String digest, byte[] data, java.lang.String algorithm)
          Liczy sumę kontrolną, zamienia ją na reprezentację tekstową ($util.toHexString()) i porównuje z podaną.
static java.lang.Boolean checkSignature(byte[] signature, byte[] data, java.lang.String algorithm, java.lang.Object[] publicKey)
          Sprawdza podpis cyfrowy dla podanych danych wejściowych.
static byte[] digest(byte[] data, java.lang.String algorithm)
          Tworzy, tak zwaną, sumę kontrolną na podstawie podanej tablicy bajtów przy użyciu określonego algorytmu.
static java.lang.Object[] generateKeyPair(java.lang.String algorithm, java.lang.Long keySize)
          Generuje parę kluczy prywatny-publiczny zgodnie z podanym algorytmem.
 java.lang.String getVersion()
          Zwraca wersję modułu.
static byte[] signature(byte[] data, java.lang.String algorithm, java.lang.Object[] privateKey)
          Generuje podpis cyfrowy dla podanych danych wejściowych.
 
Methods inherited from class palio.modules.core.Module
getConfigParam, getDescription, getModuleTranslation
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Crypto

public Crypto(palio.Instance instance,
              java.util.Properties parameters)
Method Detail

getVersion

public java.lang.String getVersion()
Zwraca wersję modułu.

Specified by:
getVersion in class palio.modules.core.Module

digest

public static byte[] digest(byte[] data,
                            java.lang.String algorithm)
                     throws java.security.NoSuchAlgorithmException
Tworzy, tak zwaną, sumę kontrolną na podstawie podanej tablicy bajtów przy użyciu określonego algorytmu. Do zamiany danych wyjściowych na reprezentację tekstową można wykorzystać funkcję Util.toHexString(byte[]).

Parameters:
data - wejściowe dane
algorithm - algorytm: MD2, MD5, SHA-1, SHA-256, SHA-384, SHA-512.
Returns:
dane wyjściowe
Throws:
java.security.NoSuchAlgorithmException

checkDigest

public static java.lang.Boolean checkDigest(byte[] digest,
                                            byte[] data,
                                            java.lang.String algorithm)
                                     throws java.security.NoSuchAlgorithmException
Liczy sumę kontrolną i porównuje z podaną.

Parameters:
digest - suma kontrolna (np. policzona metodą $crypto.digest())
data - dane wejściowe do policzenia sumy
algorithm - algorytm: MD2, MD5, SHA-1, SHA-256, SHA-384, SHA-512.
Throws:
java.security.NoSuchAlgorithmException

checkDigest

public static java.lang.Boolean checkDigest(java.lang.String digest,
                                            byte[] data,
                                            java.lang.String algorithm)
                                     throws java.security.NoSuchAlgorithmException
Liczy sumę kontrolną, zamienia ją na reprezentację tekstową ($util.toHexString()) i porównuje z podaną.

Parameters:
digest - suma kontrolna (np. policzona metodą $crypto.digest())
data - dane wejściowe do policzenia sumy
algorithm - algorytm: MD2, MD5, SHA-1, SHA-256, SHA-384, SHA-512.
Throws:
java.security.NoSuchAlgorithmException

generateKeyPair

public static java.lang.Object[] generateKeyPair(java.lang.String algorithm,
                                                 java.lang.Long keySize)
                                          throws java.security.NoSuchAlgorithmException
Generuje parę kluczy prywatny-publiczny zgodnie z podanym algorytmem. Zwraca tablicę zawierającą wygenerowane klucze: [ (String)format_klucza_prywatnego, (byte[])zawartość_klucza_prywatnego, (String)format_klucza_publicznego, (byte[])zawartość_klucza_publicznego]. Format klucza to format w jakim dany generator zapisał stworzony klucz (PKCS#8 lub X.509). Binarną zawartość klucza można, na własne potrzeby, zamienić na reprezentację tekstową za pomocą funkcji $util.toHexString.

Parameters:
algorithm - algorytm (DSA lub RSA)
keySize - długość klucza (np: 512, 1024)
Throws:
java.security.NoSuchAlgorithmException

signature

public static byte[] signature(byte[] data,
                               java.lang.String algorithm,
                               java.lang.Object[] privateKey)
                        throws java.security.NoSuchAlgorithmException,
                               java.security.spec.InvalidKeySpecException,
                               java.security.InvalidKeyException,
                               java.security.SignatureException
Generuje podpis cyfrowy dla podanych danych wejściowych. Do podpisywania/sprawdzania najlepiej używać kluczy wygenerowanych funkcją generateKeyPair(String, Long).

Parameters:
data - dane wejściowe (dokument do podpisania)
algorithm - algorytm, np: MD2withRSA, MD5withRSA, NONEwithDSA, SHA1withDSA, SHA1withRSA
privateKey - dane klucza prywatnego, tablica: [(String)algorytm, (String)format, (byte[])zawartość]
Throws:
java.security.NoSuchAlgorithmException
java.security.spec.InvalidKeySpecException
java.security.InvalidKeyException
java.security.SignatureException

checkSignature

public static java.lang.Boolean checkSignature(byte[] signature,
                                               byte[] data,
                                               java.lang.String algorithm,
                                               java.lang.Object[] publicKey)
                                        throws java.security.NoSuchAlgorithmException,
                                               java.security.InvalidKeyException,
                                               java.security.SignatureException,
                                               java.security.spec.InvalidKeySpecException
Sprawdza podpis cyfrowy dla podanych danych wejściowych. Do podpisywania/sprawdzania najlepiej używać kluczy wygenerowanych funkcją generateKeyPair(String, Long).

Parameters:
data - dane wejściowe (dokument do sprawdzenia)
algorithm - algorytm, np: MD2withRSA, MD5withRSA, NONEwithDSA, SHA1withDSA, SHA1withRSA
publicKey - dane klucza publicznego, tablica: [(String)algorytm, (String)format, (byte[])zawartość]
Throws:
java.security.NoSuchAlgorithmException
java.security.InvalidKeyException
java.security.SignatureException
java.security.spec.InvalidKeySpecException