package com.kryptnostic.kodex.v1.crypto.ciphers; import java.security.InvalidParameterException; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; public enum Mode { CTR( CipherConstants.CTR_MODE ), ECB( CipherConstants.ECB_MODE ), CBC( CipherConstants.CBC_MODE ), GCM( CipherConstants.GCM_MODE ); private final String mode; private Mode( String mode ) { this.mode = mode; } @JsonValue public String getValue() { return mode; } @JsonCreator public static Mode fromString( String mode ) { if ( mode.equals( CipherConstants.CTR_MODE ) ) { return CTR; } else if ( mode.equals( CipherConstants.ECB_MODE ) ) { return ECB; } throw new InvalidParameterException( "Invalid mode: " + mode ); } }