/* * A CCNx library test. * * Copyright (C) 2008-2012 Palo Alto Research Center, Inc. * * This work is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License version 2 as published by the * Free Software Foundation. * This work is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * for more details. You should have received a copy of the GNU General Public * License along with this program; if not, write to the * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ package org.ccnx.ccn.test.protocol; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.Security; import java.security.cert.X509Certificate; import java.util.Date; import javax.security.auth.x500.X500Principal; import org.bouncycastle.jce.provider.BouncyCastleProvider; import org.ccnx.ccn.impl.security.crypto.util.MinimalCertificateGenerator; import org.ccnx.ccn.impl.support.Log; import org.ccnx.ccn.protocol.ContentName; import org.ccnx.ccn.protocol.KeyLocator; import org.ccnx.ccn.protocol.PublisherID; import org.ccnx.ccn.test.impl.encoding.XMLEncodableTester; import org.junit.BeforeClass; import org.junit.Test; /** * Test the KeyLocator data structure. * */ public class KeyLocatorTest { static final String rootDN = "C=US,O=Organization,OU=Organizational Unit,CN=Issuer"; static final String endDN = "C=US,O=Final Org,L=Locality,CN=Fred Jones,E=fred@final.org"; static final Date start = new Date(); static final Date end = new Date(start.getTime() + (60*60*24*365)); static final String baseName = "test"; static final String subName2 = "smetters"; static final String document2 = "key"; static ContentName name = null; static KeyPair pair = null; static X509Certificate cert = null; static PublisherID pubID = null; @BeforeClass public static void setUpBeforeClass() throws Exception { try { name = new ContentName(baseName, subName2, document2); Security.addProvider(new BouncyCastleProvider()); // generate key pair KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA"); kpg.initialize(512); // go for fast pair = kpg.generateKeyPair(); MinimalCertificateGenerator mg = new MinimalCertificateGenerator( endDN, pair.getPublic(), new X500Principal(rootDN), MinimalCertificateGenerator.MSEC_IN_YEAR, false, null, false); cert = mg.sign(null, pair.getPrivate()); pubID = new PublisherID(pair.getPublic(), false); } catch (Exception ex) { XMLEncodableTester.handleException(ex); System.out.println("Unable To Initialize Test!!!"); } } @Test public void testEncodeOutputStream() { Log.info(Log.FAC_TEST, "Starting testEncodeOutputStream"); KeyLocator nameLoc = new KeyLocator(name); KeyLocator nameLocDec = new KeyLocator(); KeyLocator bnameLocDec = new KeyLocator(); XMLEncodableTester.encodeDecodeTest("KeyLocator(name)", nameLoc, nameLocDec, bnameLocDec); KeyLocator nameIDLoc = new KeyLocator(name, pubID); KeyLocator nameIDLocDec = new KeyLocator(); KeyLocator bnameIDLocDec = new KeyLocator(); XMLEncodableTester.encodeDecodeTest("KeyLocator(name,ID)", nameIDLoc, nameIDLocDec, bnameIDLocDec); KeyLocator keyLoc = new KeyLocator(pair.getPublic()); KeyLocator keyLocDec = new KeyLocator(); KeyLocator bkeyLocDec = new KeyLocator(); XMLEncodableTester.encodeDecodeTest("KeyLocator(key)", keyLoc, keyLocDec, bkeyLocDec); KeyLocator certLoc = new KeyLocator(cert); KeyLocator certLocDec = new KeyLocator(); KeyLocator bcertLocDec = new KeyLocator(); XMLEncodableTester.encodeDecodeTest("KeyLocator(cert)", certLoc, certLocDec, bcertLocDec); Log.info(Log.FAC_TEST, "Completed testEncodeOutputStream"); } }