/*******************************************************************************
* (c) Copyright 2016 Hewlett-Packard Development Company, L.P.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Apache License v2.0 which accompany this distribution.
*
* The Apache License is available at
* http://www.apache.org/licenses/LICENSE-2.0
*
*******************************************************************************/
package io.cloudslang.lang.spi.encryption;
/**
* Encryption support
* <p>
* Created by Ifat Gavish on 29/05/2016
*/
public interface Encryption {
/**
* Encrypts a clear text char array
*
* @param clearText The char array
* @return The encrypted string
*/
String encrypt(char[] clearText);
/**
* Obfuscate a String.
*
* @param clearText
* @return The obfuscated string.
*/
String obfuscate(String clearText);
/**
* Deobfuscates an obfuscated string to a clear text char array
*
* @param cypherText The obfuscated string
* @return The clear text char array
*/
char [] deobfuscate(String cypherText);
/**
* Decrypts an encrypted string to a clear text char array
*
* @param cypherText The encrypted string
* @return The clear text char array
*/
char[] decrypt(String cypherText);
/**
* Checks whether provided text char array is already encrypted
*
* @param text text to check whether it encrypted or not
* @return true if text is already encrypted
*/
boolean isTextEncrypted(String text);
}