Lógica de criptografia

O aplicativo expõe a interface com.yantra.ycp.japi.util.YCPEncrypter para manipulador a lógica de criptografia. Toda criptografia e decriptografia de aplicativo é manipulada por uma classe encrypter que implementa essa interface.

Essa classe é especificada configurando as seguintes propriedades no arquivo <runtime_sandbox>/properties/customer_overrides.properties :
  • security.encrypter.class
  • security.propertyencrypter.class

Ambas as classes devem implementar a interface com.yantra.ycp.japi.util.YCPEncrypter.

A interface com.yantra.ycp.japi.util.YCPEncrypter tem as seguintes duas funções:
  • public java.lang.String encrypt(java.lang.String sData) - sData são os dados passados pelo aplicativo para a classe de implementação para criptografia. O valor de retorno é a sequência criptografada.
  • public java.lang.String decrypt(java.lang.String sData) - sData são os dados que precisam ser decriptografados.

Para obter informações sobre a gravação de sua própria classe de criptografador de propriedade, consulte a interface YCPEncrypter nas informações de Javadoc

As funções de criptografia e descriptografia nessa interface são invocadas várias vezes pelo Sterling™ Order Management System. O aplicativo não faz distinção entre texto não criptografado e informações criptografadas. Portanto, a função encrypt pode ser chamada com dados previamente criptografados. Para evitar dupla criptografia, é importante que a função encrypt seja capaz de distinguir entre texto não criptografado e informações previamente criptografadas. Se informações previamente criptografadas forem passadas para a função, a sua implementação dessa função deve retornar o que é passado para ela sem criptografar novamente.

A função decrypt também deve ser capaz de distinguir entre texto não criptografado e texto previamente criptografado.

Desativando criptografia e decriptografia

Para desativar a criptografia (ou decriptografia), implemente a função encrypt (ou decrypt) para retornar o mesmo valor que é passado como entrada sem nenhum processamento.