1 /* Copyright (c) 2019 AT&T Intellectual Property. #
\r
3 # Licensed under the Apache License, Version 2.0 (the "License"); #
\r
4 # you may not use this file except in compliance with the License. #
\r
5 # You may obtain a copy of the License at #
\r
7 # http://www.apache.org/licenses/LICENSE-2.0 #
\r
9 # Unless required by applicable law or agreed to in writing, software #
\r
10 # distributed under the License is distributed on an "AS IS" BASIS, #
\r
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
\r
12 # See the License for the specific language governing permissions and #
\r
13 # limitations under the License. #
\r
14 ##############################################################################*/
\r
17 package org.oran.otf.camunda.workflow.utility;
\r
19 import java.security.KeyPair;
\r
20 import java.security.KeyPairGenerator;
\r
21 import java.security.NoSuchAlgorithmException;
\r
22 import javax.crypto.Cipher;
\r
23 import org.springframework.stereotype.Service;
\r
26 public class RsaEncryptDecrypt {
\r
28 private KeyPair keyPair;
\r
30 public RsaEncryptDecrypt() throws NoSuchAlgorithmException {
\r
31 this.keyPair = buildKeyPair();
\r
35 private KeyPair buildKeyPair() throws NoSuchAlgorithmException {
\r
36 final int keySize = 2048;
\r
37 KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
\r
38 keyPairGenerator.initialize(keySize);
\r
39 return keyPairGenerator.genKeyPair();
\r
42 public byte[] encrypt(String message) throws Exception {
\r
43 Cipher cipher = Cipher.getInstance("RSA");
\r
44 cipher.init(Cipher.ENCRYPT_MODE, this.keyPair.getPrivate());
\r
46 return cipher.doFinal(message.getBytes());
\r
49 public byte[] decrypt(byte[] encrypted) throws Exception {
\r
50 Cipher cipher = Cipher.getInstance("RSA");
\r
51 cipher.init(Cipher.DECRYPT_MODE, this.keyPair.getPublic());
\r
53 return cipher.doFinal(encrypted);
\r