/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.security.helpers;
import com.emc.storageos.security.ApplicationContextUtil;
import org.apache.commons.lang.StringUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
// This test is currently failing and is being @Ignored and tracked with Jira COP-19799
public class SecurityUtilTest {
String buildType;
@Rule
public ExpectedException exception = ExpectedException.none();
@Before
public void setup() throws Exception {
buildType = System.getProperty("buildType");
if (StringUtils.isEmpty(buildType)) {
buildType = "emc";
}
ApplicationContextUtil.initContext(buildType, ApplicationContextUtil.SECURITY_CONTEXTS);
}
@Test
public void loadPrivateKeyFromPCKS1PEMString() throws Exception {
String pemedPrivKey =
"-----BEGIN RSA PRIVATE KEY-----\n" +
"MIIEowIBAAKCAQEA62BnELI4IC32p4l8G3CJ0SiFM3OK4HqMSRvmVmZyLVWZOcrU\n" +
"twUEfW4EzXPtfbDOr3kgMV3I/8sKXnk3aVuuaUwAgHdBRJG0LTxnPzZr10kSQRIk\n" +
"Z93/mClzxAhUqfkJe7lzlI1MSvUA3alfoL3x/xs6XL2+/nyYc3d+moIZmynaDMi8\n" +
"j5bh7vjZiW0Pa/5RWqsWOXl/mp9fIZmTfcTmHPFasLpFpxvkw4mSJm3s8rstAKfF\n" +
"ZKv/my3n54BJr4EDCwtPmCX7kN1YriEDhnCEro8KCjCd0rDSQlv5ih9cSBvq8Xqe\n" +
"60qemFsCXFKXz9C0tWLdfu+AHq8rXBvQ0+AlcwIDAQABAoIBADRAuYCuX+Fc8tXs\n" +
"op2g1SeWvENY0irVadFNHUxu/8fqqdJ3odNjjMSfqPdHViDCIJA57pim/lky5QFm\n" +
"HZQJI2YC1lWuo9GqGvqz3yPcXAJ2GVRSx7w7P2OzSBzr0IfPXniWCf+fgqFdVKzg\n" +
"zfbsVA3TKJiwEveCB4IStAtu+GpGaj2apmAZzjU3n/aUvzEX6QzjOf4ICJSwiAp0\n" +
"S4cL/IgG7ZzqU9Tjc3U9TQA5ctDHwHCDHJvE9AEpJ2y1SRF3keiEtn53RpXv1hSf\n" +
"A0Xf6FAykCpeqh/2+e7Pb/j20BT9wNUaqmTrbA9PkCOYyujbyQNFu6yOH+gEwHBq\n" +
"Tu/UgQkCgYEA+ZmVcBqf342fChMwsLV8ZRyg6POGvl1467aqUbJ4MtpdXWRulwNA\n" +
"njx6MGnvaUbM/lajLd7qn7X7neGWGbDQcil+qCN3NP59MAfBYbpGc8ecfLc8OPmq\n" +
"NlEo4IPwwuRQVRvZXytKn++Pnpndf74r1BoqsypM4aMilbw6bq10sv8CgYEA8Wl0\n" +
"TC4ECtNovviXBu5EOs+NKVPHLVWNsIujnQWaTgOcz6zTphEw+mV5X8Yg9Q3pMuZq\n" +
"EHE6mG2l/P3TbC0zmDeHW4t0o3bvvU7Z0YliqwnpjeNmndjHFyavHbuUej+1mABT\n" +
"bpjaThvTBK/pqB0RrIWiSTk+BCpr3bGRi6NpcY0CgYBDpqgFWYIJkpYPogHpc1dD\n" +
"BI5sdU0JHcafhMQHHqtLhToXDRiYX65M9TFdG+ljDGiVayARV8EaBrYrJbCMSAtH\n" +
"Vg3ZPruZpnyB3yg/98AOs4SrnPJ6sti6nibJK5m/CSjo2IKDM/WnAcRYhXWuoPm6\n" +
"JFl8dDOgWJoQIZNo2iSuOwKBgCftL/3Vcnez5VQIWzobOA+d+hPGtl9qEegMAEBd\n" +
"B9s1P78dL1f86ePP2pYbd6Hv7gysDQixIWbKY7SG6muuwiS/slRSqTTL2/SsUNwV\n" +
"48qz9fuwi205yButGzNIrdLWLJt6GlJlV12pvmm9CmDyhdTJuUBxBi+8MGDXGGJG\n" +
"4Y6VAoGBAOCZYxIctvcOYXShamJo+e+vl96dFq8gR0jDa3o0CgdLl83Oveqgw3vS\n" +
"rEbku+bT3cgcY07mCAfppspKyhfkCsRPl6jfyJIJxxrAef11zdrnCSrjYpl3/1L8\n" +
"YTN3JGBvqy4Z/i1/FoBBiLNA/oqCgYBFFViDDwkGsk/kvhp/7tBe\n" +
"-----END RSA PRIVATE KEY-----\n";
if (buildType.equals("oss")) {
// PKCS1 should NOT be supported in OSS
exception.expect(Exception.class);
}
byte[] privKeyBytes = SecurityUtil.loadPrivateKeyFromPEMString(pemedPrivKey);
Assert.assertNotNull(privKeyBytes);
}
@Test
public void loadPrivateKeyFromPCKS8PEMString() throws Exception {
String pemedPrivKey =
"-----BEGIN PRIVATE KEY-----\n" +
"MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDWndIiJjHviLyU\n" +
"XqunhokM+vM0vOmY4+RDBdE+zrY8CvZxoeTgf9B8aQ3jr02NKudBDFSsQ2UBXZ53\n" +
"z3vW1Bpr9QgNcag5zZCKPAXJuikIFljVrlKMMcVusXx04boNRiZkSGde8aO258If\n" +
"yi/OXGcYWZPpyHJPTx718xPyIqcndTtjz48kMkc1Z+YoYH/S1U4Gr7prsRk7vISa\n" +
"InXNeZsSejcYgM4XRt8if1dPMMs7ceEZH/xngjA15bcgRzjkGzgF2Zc4Ae5/C9Pm\n" +
"nUlq7F0FEaicBEg0Zsyce78tk0xQBq1BMzjmU0cM/y7ztFLwXIBJUnhkx5jCneMP\n" +
"ljElfi3NAgMBAAECggEBANIFo8uzYQ6t2w2/D3Bjod7H/hTQAjGSYqCMIta553Ae\n" +
"sklFSvu/WMFG9UapGNVa9O+dJ4dkdIW/ngJVUzVKX4jiQz0UyrG2TwpX7roYqWq2\n" +
"o7yIWVPEqRbILakb9Lxkt9FPYYlyIuotJrWBYQMrPeCAWNVhSSv/m6bId+5upvFe\n" +
"ZzfMIZ3rs9m+ZzfGWuNORpXwGe0l70ExsTRPReXhjUvyAlctJUdZbAeb42Ms1SYF\n" +
"PSaaFd2b2ARLbzRmkEk1VaMVSRfLft+8ZehjP7Y+i/INffU2Mn1MnRn1FGIVt1uh\n" +
"8xy2j7YNK4JCWdvJXLAGN7q4VooGbcpNRYh7BbEe4+kCgYEA6/daf7KQU4nNUnwl\n" +
"GGFFtboYvSa0EYmZ7EuYrcNYIyw6WeSWwYSyeHEa+QGYCc5bCbA2DMcqj3YkvMyG\n" +
"FfySPYonHZnjSfMhaVblrbUlHErGv3Jwet75qSLfHBMtaVATQwXrW56mtF3pBOro\n" +
"6jNZ6+LonytntY1zb03i+dFjP3sCgYEA6NZwHvqpEuc0vPxOXJqI01WwIRXjN+8w\n" +
"AVnREkFs14JdiWvlJUNNiTduhvEX750v3Uc2IGvglzVdosZvbLgDGGs5VgQQW6Vw\n" +
"75+nvLDoUaA8x8P5NPuR7pNVUjIjz7Da72wLPt+JYF4Ywh+U/DVALgCwr+rKjY1W\n" +
"Q92r2MxCYVcCgYEA1Jss/ku8QJiz1/MlVT8nmSKQ8bSyn+6UMlS2vzF381EBTkdp\n" +
"Efnm+CAoxl0KSSOV4TfUq1S0Y0h2t2msEplchng44DHsmY+n9gqmrQm+4yv4wTxy\n" +
"XjMTTbKuxdP9oZrVkBkAQ6/B0lefAaBKteIIzkHHiMqKCgnmDU5nCOIBg4sCgYEA\n" +
"1Wv5yeupHpKfXLtIeMmNsWlR0IHnjFXKgvJ5GWqvAbuVUWl82PMgFy6gOUC02AYU\n" +
"4ZdsnbtEWlWoRpPtfpINBE0EeTuwYtD6/Coz7lmaGXfvPoz72Pzffve9tWIQQUey\n" +
"5tL6W986ZQLbXtTkE2ocMg6f5iApGib7c6m04zwXfHECgYBTzVaNrKfyvnaSrdfY\n" +
"qE+sJrl2YyO682kaX7CRhF5rNcviH7xJVEOGZfdSTEOCtWRtvO2jWw1OVHXh+CDT\n" +
"KQLoM74GYXM/GOc8QNDVFr0z2YmroNkWDF5qdgnSwz04Z3+1tpVVpIm9KczxpCln\n" +
"0LYID4m9NU8unO0dwZv3Y8803Q==\n" +
"-----END PRIVATE KEY-----";
byte[] privKeyBytes = SecurityUtil.loadPrivateKeyFromPEMString(pemedPrivKey);
Assert.assertNotNull(privKeyBytes);
}
}