Cheat Sheet

This is a list of all available methods. Please refer to the detailed documentation for further info.

// supported encodings
public enum Encoding { HEX, BASE64, URL, MIME };

// builder pattern methods (NEW - reduces parameter overload)
CipherBuilder cipherBuilder();
SignerBuilder signerBuilder();

// keystore methods
KeyStore keystore();
KeyStore keystore(String type);
KeyStore keystore(String location, char[] password);
KeyStore keystore(String location, String password);  // convenience overload
KeyStore keystore(String location, char[] password, String type);
KeyStore keystore(String location, String password, String type);  // convenience overload
KeyStore keystore(String location, char[] password, String type, String provider);
KeyStore keystore(String location, String password, String type, String provider);  // convenience overload

// certificate methods
Certificate certificate(KeyStore keystore, String alias);

// key methods
PublicKey publicKey(KeyStore keystore, String alias);
PrivateKey privateKey(KeyStore keystore, String alias, char[] password);
PrivateKey privateKey(KeyStore keystore, String alias, String password);  // convenience overload
Key secretKey(KeyStore keystore, String alias, char[] password);
Key secretKey(KeyStore keystore, String alias, String password);  // convenience overload
KeyPair keyPair(String algorithm, int keySize);
KeyPair keyPair(String algorithm, String provider, int keySize);
KeyPair keyPair(String algorithm, int keySize, SecureRandom random);
KeyPair keyPair(String algorithm, String provider, int keySize, SecureRandom random);
byte[] symmetricKey(String algorithm);
byte[] symmetricKey(String algorithm, String provider);
String symmetricKey(String algorithm, Encoding encoding);
String symmetricKey(String algorithm, String provider, Encoding encoding);

// message digest methods
Digester digester(String algorithm, String provider);
Digester digester(String algorithm);
EncodingDigester digester(String algorithm, Encoding encoding);
EncodingDigester digester(String algorithm, Encoding encoding, Charset charset);
EncodingDigester digester(String algorithm, String provider, Encoding encoding);
EncodingDigester digester(String algorithm, String provider, Encoding encoding, Charset charset);

// signature methods
Signer signer(PrivateKey privateKey, String algorithm);
Signer signer(PrivateKey privateKey, String algorithm, String provider);
SignerByKey signer(Map<String, PrivateKey> privateKeyMap, String algorithm);
SignerByKey signer(Map<String, PrivateKey> privateKeyMap, String algorithm, String provider);
EncodingSigner signer(PrivateKey privateKey, String algorithm, Encoding encoding);
EncodingSigner signer(PrivateKey privateKey, String algorithm, Charset charset, Encoding encoding);
EncodingSigner signer(PrivateKey privateKey, String algorithm, String provider, Charset charset, Encoding encoding);

// verification methods
Verifier verifier(PublicKey publicKey, String algorithm);
Verifier verifier(PublicKey publicKey, String algorithm, String provider);
VerifierByKey verifier(Map<String, PublicKey> publicKeyMap, String algorithm);
VerifierByKey verifier(Map<String, PublicKey> publicKeyMap, String algorithm, String provider);
EncodingVerifier verifier(PublicKey publicKey, String algorithm, Encoding encoding);
EncodingVerifier verifier(PublicKey publicKey, String algorithm, String provider, Encoding encoding);
EncodingVerifier verifier(PublicKey publicKey, String algorithm, String provider, Charset charset, Encoding encoding);

// symmetric ciphers
Cipher cipher(byte[] key, String keyAlgorithm, String cipherAlgorithm, Mode mode);
Cipher cipher(byte[] key, String keyAlgorithm, String cipherAlgorithm, String provider, Mode mode);
EncodingCipher cipher(String key, String keyAlgorithm, String cipherAlgorithm, Mode mode, Charset charset, Encoding encoding);
EncodingCipher cipher(String key, String keyAlgorithm, String cipherAlgorithm, String provider, Mode mode, Charset charset, Encoding encoding);
CipherByKey cipher(String keyAlgorithm, String cipherAlgorithm, Mode mode);
CipherByKey cipher(String keyAlgorithm, String cipherAlgorithm, String provider, Mode mode);
EncodingCipherByKey cipherByKey(String keyAlgorithm, String cipherAlgorithm, Mode mode, Charset charset);
EncodingCipherByKey cipherByKey(String keyAlgorithm, String cipherAlgorithm, String provider, Mode mode, Charset charset);

// asymmetric ciphers
Cipher cipher(Key key, String algorithm, Mode mode);
Cipher cipher(Key key, String algorithm, String provider, Mode mode);
EncodingCipher cipher(Key key, String algorithm, Mode mode, Encoding encoding, Charset charset);
EncodingCipher cipher(Key key, String algorithm, String provider, Mode mode, Encoding encoding, Charset charset);
CipherByKey cipher(Map<String, Key> keys, String algorithm);
CipherByKey cipher(Map<String, Key> keys, String algorithm, String provider);
EncodingCipherByKey cipher(Map<String, Key> keys, String algorithm, Encoding encoding, Charset charset);
EncodingCipherByKey cipher(Map<String, Key> keys, String algorithm, String provider, Encoding encoding, Charset charset);

// message authentication codes
Mac mac(Key key, String algorithm);
Mac mac(Key key, String algorithm, String provider);
EncodingMac mac(Key key, String algorithm, Encoding encoding, Charset charset);
EncodingMac mac(Key key, String algorithm, String provider, Encoding encoding, Charset charset);

Builder Pattern Usage

For complex operations with many parameters, use the fluent builder APIs:

Signer Builder

// Simple signer
EncodingSigner signer = signerBuilder()
    .key(privateKey)
    .algorithm("SHA256withRSA")
    .build();

// Full configuration
EncodingSigner signer = signerBuilder()
    .key(privateKey)
    .algorithm("SHA256withRSA")
    .provider("BC")
    .charset(UTF_8)
    .encoding(BASE64)
    .build();

// Multi-key signer
EncodingSignerByKey signer = signerBuilder()
    .keys(privateKeyMap)
    .algorithm("SHA256withRSA")
    .encoding(BASE64)
    .buildByKey();

Cipher Builder

// Symmetric cipher
EncodingCipher cipher = cipherBuilder()
    .key("myKey")
    .keyAlgorithm("AES")
    .algorithm("AES/CBC/PKCS5Padding")
    .mode(ENCRYPT)
    .charset(UTF_8)
    .encoding(BASE64)
    .buildSymmetric();

// Asymmetric cipher
EncodingCipher cipher = cipherBuilder()
    .key(publicKey)
    .algorithm("RSA")
    .mode(ENCRYPT)
    .encoding(BASE64)
    .buildAsymmetric();

Last updated

Was this helpful?