diff options
Diffstat (limited to 'dcae-controller-core/dcae-controller-platform-server/src/main/server/scripts/encrypt-file.groovy')
-rw-r--r-- | dcae-controller-core/dcae-controller-platform-server/src/main/server/scripts/encrypt-file.groovy | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/dcae-controller-core/dcae-controller-platform-server/src/main/server/scripts/encrypt-file.groovy b/dcae-controller-core/dcae-controller-platform-server/src/main/server/scripts/encrypt-file.groovy new file mode 100644 index 0000000..ee146c1 --- /dev/null +++ b/dcae-controller-core/dcae-controller-platform-server/src/main/server/scripts/encrypt-file.groovy @@ -0,0 +1,64 @@ + +/*- + * ============LICENSE_START========================================== + * OPENECOMP - DCAE + * =================================================================== + * 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============================================ + */ + +import org.openecomp.ncomp.utils.CryptoUtils +import java.security.SecureRandom; +import java.math.BigInteger; +import org.json.JSONObject; +import org.yaml.snakeyaml.DumperOptions; +import org.yaml.snakeyaml.Yaml; +import static org.openecomp.ncomp.sirius.manager.console.Utils.*; + +class X { +static def object2yaml(Object object) { + DumperOptions options = new DumperOptions(); + options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK); + options.setSplitLines(true); + options.setWidth(100000); + Yaml y = new Yaml(options); + JSONObject json = (JSONObject) object2json(object); + def data = y.load(json.toString()); + return y.dump(data); +} +} + + +// http://docs.groovy-lang.org/latest/html/gapi/groovy/util/CliBuilder.html +def cli = new CliBuilder(usage:'dcae-controller.sh encrypt-file OPTIONS') +cli.k(longOpt:'key', args:1, 'Public Key File') +cli.f(longOpt:'file', args:1, 'File') + +def options = cli.parse(args) + +if (options == null || ! options.key || ! options.file ) { + cli.usage() + System.exit(1) +} + +def password = new BigInteger(130, new SecureRandom()).toString(32); + +println password + +str = CryptoUtils.encrypt(password,new File(options.file).text).replace("\r",""); + +str1 = CryptoUtils.encryptPublic(CryptoUtils.getKey(options.key),password).replace("\r",""); + +println X.object2yaml(['encrypted-file': [ content:str, 'encrypted-password' : str1 ]]) |