diff options
author | Guo Ruijing <ruijing.guo@intel.com> | 2017-07-31 08:47:35 +0000 |
---|---|---|
committer | Pamela Dragosh <pdragosh@research.att.com> | 2017-07-31 15:51:10 -0400 |
commit | 073cc188efe9abb4c010cf674e34e2cf46ef1c52 (patch) | |
tree | 155c23fbdf3a838ecb5f4183fc3bb6b09aac41eb /ECOMP-PDP/src/test/java/org/openecomp/policy/pdp/test/custom/FunctionDefinitionDecrypt.java | |
parent | 4ca818fdfb9b807562166800a086b413593d6894 (diff) |
[POLICY-73] replace openecomp for policy-engine
Change-Id: I54072f6bcd388c0e05562614ee89b4ae7ad67004
Signed-off-by: Guo Ruijing <ruijing.guo@intel.com>
Signed-off-by: Pamela Dragosh <pdragosh@research.att.com>
Diffstat (limited to 'ECOMP-PDP/src/test/java/org/openecomp/policy/pdp/test/custom/FunctionDefinitionDecrypt.java')
-rw-r--r-- | ECOMP-PDP/src/test/java/org/openecomp/policy/pdp/test/custom/FunctionDefinitionDecrypt.java | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/ECOMP-PDP/src/test/java/org/openecomp/policy/pdp/test/custom/FunctionDefinitionDecrypt.java b/ECOMP-PDP/src/test/java/org/openecomp/policy/pdp/test/custom/FunctionDefinitionDecrypt.java deleted file mode 100644 index ec7aff3b9..000000000 --- a/ECOMP-PDP/src/test/java/org/openecomp/policy/pdp/test/custom/FunctionDefinitionDecrypt.java +++ /dev/null @@ -1,162 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ECOMP-PDP - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.policy.pdp.test.custom; - -import java.security.InvalidKeyException; -import java.security.NoSuchAlgorithmException; -import java.security.PrivateKey; -import java.security.PublicKey; -import java.util.List; - -import javax.crypto.BadPaddingException; -import javax.crypto.Cipher; -import javax.crypto.IllegalBlockSizeException; -import javax.crypto.NoSuchPaddingException; - -import com.att.research.xacml.api.DataType; -import com.att.research.xacml.api.DataTypeException; -import com.att.research.xacml.api.Identifier; -import com.att.research.xacml.api.XACML3; -import com.att.research.xacml.std.IdentifierImpl; -import com.att.research.xacml.std.StdStatus; -import com.att.research.xacml.std.StdStatusCode; -import com.att.research.xacml.std.datatypes.DataTypeHexBinary; -import com.att.research.xacml.std.datatypes.DataTypeString; -import com.att.research.xacml.std.datatypes.HexBinary; -import com.att.research.xacmlatt.pdp.eval.EvaluationContext; -import com.att.research.xacmlatt.pdp.policy.ExpressionResult; -import com.att.research.xacmlatt.pdp.policy.FunctionArgument; -import com.att.research.xacmlatt.pdp.policy.FunctionDefinition; -import com.att.research.xacmlatt.pdp.std.functions.ConvertedArgument; - -public class FunctionDefinitionDecrypt implements FunctionDefinition { - public static final Identifier FD_RSA_DECRYPT = new IdentifierImpl("urn:com:att:research:xacml:custom:function:3.0:rsa:decrypt"); - private static final FunctionDefinitionDecrypt singleInstance = new FunctionDefinitionDecrypt(); - - public static FunctionDefinitionDecrypt newInstance() { - return singleInstance; - } - - @Override - public Identifier getId() { - return FD_RSA_DECRYPT; - } - - @Override - public Identifier getDataTypeId() { - return XACML3.ID_DATATYPE_STRING; - } - - @Override - public boolean returnsBag() { - return false; - } - - @Override - public ExpressionResult evaluate(EvaluationContext evaluationContext, List<FunctionArgument> arguments) { - if (arguments == null || arguments.size() < 2) { - return ExpressionResult.newError(new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, "Decrypt failed, expecting 2 arguments.")); - } - // - // What is the first argument? - // - FunctionArgument arg0 = arguments.get(0); - if (arg0.isBag()) { - // - // We don't support bags right now - // - return ExpressionResult.newError(new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, "Decrypt failed, not expecting a bag for argument 0.")); - } - if (arg0.getValue().getDataTypeId().equals(XACML3.ID_DATATYPE_HEXBINARY) == false) { - // - // Should be a String - // - return ExpressionResult.newError(new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, "Decrypt failed, expected a Hex Binary for argument 0.")); - } - // - // Convert the argument - // - ConvertedArgument<HexBinary> data = new ConvertedArgument<HexBinary>(arg0, DataTypeHexBinary.newInstance(), false); - if (! data.isOk()) { - return ExpressionResult.newError(new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, "Decrypt failed, argument 0 failed to convert to Hex Binary.")); - } - // - // Ok - check the 2nd argument - // - FunctionArgument arg1 = arguments.get(1); - if (arg1.isBag()) { - // - // We don't support bags right now - // - return ExpressionResult.newError(new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, "Decrypt failed, not expecting a bag for argument 1.")); - } - if (arg1.getValue().getDataTypeId().equals(DataTypePrivateKey.DT_PRIVATEKEY) || - arg1.getValue().getDataTypeId().equals(DataTypePublicKey.DT_PUBLICKEY)) { - // - // Ok - let's try to decrypt - // - Cipher cipher; - try { - cipher = Cipher.getInstance("RSA"); - if (arg1.getValue().getDataTypeId().equals(DataTypePrivateKey.DT_PRIVATEKEY)) { - // - // Using the private key - // - DataType<PrivateKey> pkDatatype = DataTypePrivateKey.newInstance(); - ConvertedArgument<PrivateKey> privateKey = new ConvertedArgument<PrivateKey>(arg1, pkDatatype, false); - if ( ! privateKey.isOk()) { - return ExpressionResult.newError(new StdStatus(privateKey.getStatus().getStatusCode(), "Decrypt: " + privateKey.getStatus().getStatusMessage())); - } - // - // Setup decryption - // - cipher.init(Cipher.DECRYPT_MODE, privateKey.getValue()); - } else if (arg1.getValue().getDataTypeId().equals(DataTypePublicKey.DT_PUBLICKEY)) { - // - // Using the private key - // - DataType<PublicKey> pkDatatype = DataTypePublicKey.newInstance(); - ConvertedArgument<PublicKey> publicKey = new ConvertedArgument<PublicKey>(arg1, pkDatatype, false); - if ( ! publicKey.isOk()) { - return ExpressionResult.newError(new StdStatus(publicKey.getStatus().getStatusCode(), "Decrypt: " + publicKey.getStatus().getStatusMessage())); - } - // - // Setup decryption - // - cipher.init(Cipher.DECRYPT_MODE, publicKey.getValue()); - } - // - // Do the decryption - // - byte[] decryptedData = cipher.doFinal(data.getValue().getData()); - String decryptedString = new String(decryptedData); - // - // All good, return the decrypted string - // - return ExpressionResult.newSingle(DataTypeString.newInstance().createAttributeValue(decryptedString)); - } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException | IllegalBlockSizeException | BadPaddingException | DataTypeException e) { - return ExpressionResult.newError(new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, "Decrypt failed: " + e.getLocalizedMessage())); - } - } - return ExpressionResult.newError(new StdStatus(StdStatusCode.STATUS_CODE_PROCESSING_ERROR, "Decrypt failed, expecting public/private key datatype for argument 1.")); - } - -} |