package de.vanitasvitae.crypto.pgpainless.algorithm; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; public class AlgorithmSuite { private static AlgorithmSuite defaultAlgorithmSuite = new AlgorithmSuite( Arrays.asList( SymmetricKeyAlgorithm.AES_256, SymmetricKeyAlgorithm.AES_192, SymmetricKeyAlgorithm.AES_128), Arrays.asList( HashAlgorithm.SHA512, HashAlgorithm.SHA384, HashAlgorithm.SHA256, HashAlgorithm.SHA224), Arrays.asList( CompressionAlgorithm.ZLIB, CompressionAlgorithm.BZIP2, CompressionAlgorithm.ZIP, CompressionAlgorithm.UNCOMPRESSED) ); private List symmetricKeyAlgorithms; private List hashAlgorithms; private List compressionAlgorithms; public AlgorithmSuite(List symmetricKeyAlgorithms, List hashAlgorithms, List compressionAlgorithms) { this.symmetricKeyAlgorithms = Collections.unmodifiableList(symmetricKeyAlgorithms); this.hashAlgorithms = Collections.unmodifiableList(hashAlgorithms); this.compressionAlgorithms = Collections.unmodifiableList(compressionAlgorithms); } public void setSymmetricKeyAlgorithms(List symmetricKeyAlgorithms) { this.symmetricKeyAlgorithms = symmetricKeyAlgorithms; } public List getSymmetricKeyAlgorithms() { return new ArrayList<>(symmetricKeyAlgorithms); } public int[] getSymmetricKeyAlgorithmIds() { int[] array = new int[symmetricKeyAlgorithms.size()]; for (int i = 0; i < array.length; i++) { array[i] = symmetricKeyAlgorithms.get(i).getAlgorithmId(); } return array; } public void setHashAlgorithms(List hashAlgorithms) { this.hashAlgorithms = hashAlgorithms; } public List getHashAlgorithms() { return hashAlgorithms; } public int[] getHashAlgorithmIds() { int[] array = new int[hashAlgorithms.size()]; for (int i = 0; i < array.length; i++) { array[i] = hashAlgorithms.get(i).getAlgorithmId(); } return array; } public void setCompressionAlgorithms(List compressionAlgorithms) { this.compressionAlgorithms = compressionAlgorithms; } public List getCompressionAlgorithms() { return compressionAlgorithms; } public int[] getCompressionAlgorithmIds() { int[] array = new int[compressionAlgorithms.size()]; for (int i = 0; i < array.length; i++) { array[i] = compressionAlgorithms.get(i).getAlgorithmId(); } return array; } public static AlgorithmSuite getDefaultAlgorithmSuite() { return defaultAlgorithmSuite; } }