001package io.cui.tools.net.ssl;
002
003/**
004 * Identifies the key-Algorithm for KeyMaterial-Holder. In order to provide a sensible default-set
005 * these are taken from keycloak 11.
006 *
007 * @author Oliver Wolff
008 *
009 */
010public enum KeyAlgorithm {
011
012    /** {@code null} value. */
013    UNDEFINED,
014
015    /** A concrete algorithm that is not this enum / list. */
016    OTHER,
017
018    /** https://en.wikipedia.org/wiki/Advanced_Encryption_Standard */
019    AES_128,
020
021    /** https://en.wikipedia.org/wiki/Advanced_Encryption_Standard */
022    AES_192,
023
024    /** https://en.wikipedia.org/wiki/Advanced_Encryption_Standard */
025    AES_256,
026
027    /** https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm */
028    ECDSA_P_256,
029
030    /** https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm */
031    ECDSA_P_384,
032
033    /** https://en.wikipedia.org/wiki/Elliptic_Curve_Digital_Signature_Algorithm */
034    ECDSA_P_521,
035
036    /** https://en.wikipedia.org/wiki/HMAC */
037    HMAC_H_256,
038
039    /** https://en.wikipedia.org/wiki/HMAC */
040    HMAC_H_384,
041
042    /** https://en.wikipedia.org/wiki/HMAC */
043    HMAC_H_512,
044
045    /** https://en.wikipedia.org/wiki/RSA_(cryptosystem) */
046    RSA_RS_256,
047
048    /** https://en.wikipedia.org/wiki/RSA_(cryptosystem) */
049    RSA_RS_384,
050
051    /** https://en.wikipedia.org/wiki/RSA_(cryptosystem) */
052    RSA_RS_512,
053
054    /** https://en.wikipedia.org/wiki/RSA_(cryptosystem) */
055    RSA_PS_256,
056
057    /** https://en.wikipedia.org/wiki/RSA_(cryptosystem) */
058    RSA_PS_384,
059
060    /** https://en.wikipedia.org/wiki/RSA_(cryptosystem) */
061    RSA_PS_512,
062
063    /** https://en.wikipedia.org/wiki/RSA_(cryptosystem) */
064    RSA_2048,
065}