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 Padding {
NONE(CipherConstants.NO_PADDING),
PKCS5(CipherConstants.PKCS5_PADDING),
OAEPWithSHA1AndMGF1Padding(CipherConstants.OAEPWithSHA1AndMGF1Padding),
OAEPWithSHA256AndMGF1Padding(CipherConstants.OAEPWithSHA256AndMGF1Padding);
private final String padding;
private Padding( String padding ) {
this.padding = padding;
}
@JsonValue
public String getValue() {
return padding;
}
@JsonCreator
public static Padding fromString( String padding ) {
if( padding.equals( CipherConstants.NO_PADDING ) ) {
return NONE;
} else if ( padding.equals( CipherConstants.PKCS5_PADDING ) ) {
return PKCS5;
} else if ( padding.equals( CipherConstants.OAEPWithSHA1AndMGF1Padding ) ) {
return OAEPWithSHA1AndMGF1Padding;
} else if ( padding.equals( CipherConstants.OAEPWithSHA256AndMGF1Padding ) ) {
return OAEPWithSHA256AndMGF1Padding;
}
throw new InvalidParameterException( "Invalid padding: " + padding );
}
}