001: /*************************************************************************
002: * *
003: * EJBCA: The OpenSource Certificate Authority *
004: * *
005: * This software is free software; you can redistribute it and/or *
006: * modify it under the terms of the GNU Lesser General Public *
007: * License as published by the Free Software Foundation; either *
008: * version 2.1 of the License, or any later version. *
009: * *
010: * See terms of license at gnu.org. *
011: * *
012: *************************************************************************/package org.ejbca.core.protocol.xkms;
013:
014: import java.io.ByteArrayInputStream;
015: import java.security.KeyFactory;
016: import java.security.KeyStore;
017: import java.security.NoSuchProviderException;
018: import java.security.PrivateKey;
019: import java.security.cert.CertificateException;
020: import java.security.cert.CertificateFactory;
021: import java.security.cert.X509Certificate;
022: import java.security.spec.PKCS8EncodedKeySpec;
023: import java.util.ArrayList;
024:
025: import org.ejbca.util.Base64;
026: import org.ejbca.util.KeyTools;
027:
028: /**
029: * Class containing constans common for unit tests.
030: *
031: * @author Philip Vendil
032: * $Id: Constants.java,v 1.1 2006/12/22 09:29:14 herrvendil Exp $
033: */
034: public class Constants {
035:
036: private static byte[] certroottest = Base64
037: .decode(("MIIDCzCCAfOgAwIBAgIIK5kLeM4VChowDQYJKoZIhvcNAQEFBQAwEzERMA8GA1UE"
038: + "AxMIY2VydHRlc3QwHhcNMDYwMTMxMTAxNTE1WhcNMjYwMjE1MTAyNTE1WjATMREw"
039: + "DwYDVQQDEwhjZXJ0dGVzdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB"
040: + "ALInKM0KfuSpFawo9wvEx2kb+UZ6KQ4L4UPLL6Vo/h/Wu+fPrKZo6UKApGqL68Wz"
041: + "5RSoDrhCV3DPKzCCbvtIjUHQ2kmqdEdq3LeUopYV4D4dy6ENin4g7fJk3+ChWgSM"
042: + "bq5WGwng45DZAQ9U4FS5z6vGf5062gdCeOfvGShj/hFYgNPDJvipB+c+vchFcqBv"
043: + "XwrOXFZa5tKgXcx3zNn7dPefM02Z4fBwvS3yhvq62WLQ1R2RuqNeI4rm9dlbtBEk"
044: + "Zb/VU25fkv+ZnGp3ekD0TgNi5bowsZiEClzWODvIpXS/TBhcXgp63/e/jwd/KNc4"
045: + "m0XovQzgb5wWRSorS5lFiT0CAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNV"
046: + "HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFFJgR2sUAaXmkBfpgNjBqGgycUxBMB8GA1Ud"
047: + "IwQYMBaAFFJgR2sUAaXmkBfpgNjBqGgycUxBMA0GCSqGSIb3DQEBBQUAA4IBAQCf"
048: + "2q0hWIXSOwbO5az2TMI4pwzmL+gz7GsAeCZ46TFSn8qIDQ4I8sMOB4vaIsAxUCUO"
049: + "UCSkakgQTlrCORL45H8GZ7Z0Clu60tjJtIuoRRi8lsaZWtmKXw3P2cBSyFakSq64"
050: + "vDJCGHadGzeHqYRiAHFs98MbLWd4X3fxLvsWEtEjaMiL3ocd4FRAv9UMGL6KUzIJ"
051: + "wpl+xgBtp/lyzIMokRdgYNTLsFkrtR0DgG+nVXg+PJRJXz7UWJfZ0WFUz4+o+DgZ"
052: + "BYk5MNpAssbi6z4F6eVtqN3RcLZ3KhN6HR4t3+NDNdCRyW2GJk8swEnsbYUOeOGe"
053: + "RafwgiudJEFS+OLJ9fWf").getBytes());
054:
055: private static byte[] certintertest = Base64
056: .decode(("MIIDDzCCAfegAwIBAgIISqSAWg1vgP4wDQYJKoZIhvcNAQEFBQAwEzERMA8GA1UE"
057: + "AxMIY2VydHRlc3QwHhcNMDYwMTMxMTAyMzIwWhcNMjUxMDE4MTAzMzIwWjAXMRUw"
058: + "EwYDVQQDEwxjZXJ0dGVzdHN1YjIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK"
059: + "AoIBAQCZKBvVMID5uukn6bZ8JD4cXug3hb+UlmEVLJj7Sm6wcF3TYFhDlwPIeCXj"
060: + "qn9ZIULxpmNNda1E4ZcqpHYcxbBu8bhYmffeEtzIWOXd1MQ8WWlGbB1i8bNpZHOq"
061: + "2ZhbV8qtGRg8JRVdi8MGKsDq74KjjcduV9jb8gK1R5iah2YrNU+7JNDutN3sLTHR"
062: + "NDnW2wTIJfd+S+mh5hcgroNXbLT50CEdmjNBucSGzHHwWIgiL/7PZlchDLVkdiza"
063: + "A5suAjuSIr4tSKnxXDWrrkcBu9R5pOUPYS00eaMXDW3p+OesRYwMkmG74JS6aw8/"
064: + "JY8r52AmvXJgc5Gjkma6LkXn1NuxAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8w"
065: + "DgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBT7WnnEHd6xvC8/Dhvo/pIhVkMiIDAf"
066: + "BgNVHSMEGDAWgBRSYEdrFAGl5pAX6YDYwahoMnFMQTANBgkqhkiG9w0BAQUFAAOC"
067: + "AQEAULha8ZiRIUx8FdayL/fsPwicGwZko3DuGhnY97aUSvcSx2JTdAFM0wWXdEL5"
068: + "gWq4451wBqhnV62yma1QR8v/O8ypmsNt7nKBGgZ7jRzq/GGFUCJvvTZmAQa/iz9L"
069: + "KNiKOouUOaDkA8d00qroJMBkiDE4rt1OCMFPjfjxh4ozEXilx1Bg15IFW3B7TQRw"
070: + "vv3cpYx0HDFDLYloDEVOWmmBb5gVm1JS3zqVxJU9dwGWi8+5yrsnnY7Cd6m6GKui"
071: + "a17PcoX3yiBwHQQQNh8kmXVqhSMrVUNBZuauR8AjwVnW0yR8f2buaGnx6Bzg66Y7"
072: + "7jZRFYdRZw7zQ3ki6BzVrdI2qg==").getBytes());
073:
074: private static byte[] certtestuser = Base64
075: .decode(("MIICjDCCAXSgAwIBAgIIO9I75BAR2iQwDQYJKoZIhvcNAQEFBQAwFzEVMBMGA1UE"
076: + "AxMMY2VydHRlc3RzdWIyMB4XDTA2MDEzMTEwMjQwNloXDTI2MDEyNjEwMzQwNlow"
077: + "FzEVMBMGA1UEAxMMY2VydHRlc3R1c2VyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB"
078: + "iQKBgQCsXEslTgDUcYYLVvg7ip+ED0ahi1575XJdukhA89Vhmdr2dr3anANAhQ3P"
079: + "HmumX023fxc/FPeFm0YsmWAFdgVvo4OgNqn8uHnUZtDyBz2x1BcSZPl4BemiegWR"
080: + "AH49b7DY9ov0WrCn+f2G4/bi/+B47Bg/2xTCB4db82/uljAJBwIDAQABo2AwXjAM"
081: + "BgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIFoDAdBgNVHQ4EFgQU+QezAWJBLplL"
082: + "X48jAQvthJAc580wHwYDVR0jBBgwFoAU+1p5xB3esbwvPw4b6P6SIVZDIiAwDQYJ"
083: + "KoZIhvcNAQEFBQADggEBAEQ0buiAhEARQrYWu2W0Z8K+NdP3H8CbgZqnrgVwPGHa"
084: + "jlcczpEEqM2B8jWbACGqZs9098DwW3NaNK+vRscdClTWcFLjvL/c8egFSbsVuTR2"
085: + "jeUXpOgalwa5lL/NICaHBFvCeXZam1frND6NQzIZeoJyIS3Dz3wKPj8JwP0wa/I9"
086: + "MqkwZfrYkOlAfBVE5AxYK3PHCrGn5DE8PoPYu4nqqmjrql6RkpLyXa2gP0R8nM/M"
087: + "nwGu3CfmzCHelPimFoR/hgyI/WShzUJ8I294RtLCJGHyKBYp4putP2x8vVA3rKLx"
088: + "tk0aFncO0UPPFCcuufxAkDEDYXYELl6oS45ho8ANOZc=")
089: .getBytes());
090:
091: private static byte[] userkey = Base64
092: .decode(("MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKxcSyVOANRxhgtW"
093: + "+DuKn4QPRqGLXnvlcl26SEDz1WGZ2vZ2vdqcA0CFDc8ea6ZfTbd/Fz8U94WbRiyZ"
094: + "YAV2BW+jg6A2qfy4edRm0PIHPbHUFxJk+XgF6aJ6BZEAfj1vsNj2i/RasKf5/Ybj"
095: + "9uL/4HjsGD/bFMIHh1vzb+6WMAkHAgMBAAECgYEAgO/h/xwlHsd14RHETLZcsivD"
096: + "SKG7oq94KIlr97rwSz0PQgR97gV7oU5nkCNPoHv25WgbecMzjy0jB8YMwMkTMr0r"
097: + "acXbi4GeCLL3iyVcfElCx5D+D09VoHnW1otCTxMTLFvNnbewnNUecTf3DJNgd43S"
098: + "8Clxw66R3Y4w1mzwjnECQQDxYtLhQ3OmfIduvUni1XqJ+68LsktIg3bPGPNV5REa"
099: + "90585NTf/KvO+sJDVHTsKrEe9+FSp4UTwNRbQCEb1t69AkEAtsupiYxVY9ujymKu"
100: + "hLfpZKi5qjohG+hGoqrHSHJKXpevrhmTOkFALVVCT+fC2scHNloZxXVjd0VtXucE"
101: + "5FgVEwJBAMyqHOEwfstnhLFJP29b0AVUZ8vEBX7bMI5RumhWy5UQoPTWVQQBSW86"
102: + "QCI0ZtqjLAB07hBVx0jDU4p3KltfaQUCQFTwfB4rNH6LUCe6BSgsoWohsOx1yG7E"
103: + "VxY9Tw7N9NrRl1PKFIysR1sJVB/3LKcmdqZ95Z3Id2izvSetJ6vHdjsCQDDXaW1R"
104: + "q6Y2mFTmc2afDFzxkHvHOoMf9tnj7KwjZEuqGckUCbKqvk1MX/9cB3KLo9t+wqCW"
105: + "jk+w4V4pCK643qQ=").getBytes());
106:
107: public static String pkcs10_1 = "MIIBkzCB/QIBADBUMQswCQYDVQQGEwJTRTETMBEGA1UECBMKU29tZS1TdGF0ZTEh"
108: + "MB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQ0wCwYDVQQDEwRUZXN0"
109: + "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDczgi13kcTGTMmOdMU/QzvH6JV"
110: + "QxL23dqdYpsV//XHO2bjKlgqqc3MpGH4QQkz/80rzFi4EwuqBpOnXo0P09I2jztk"
111: + "IG4TSM+RwOfvaAMDJ1B6eeih6JX+v0A5PaWJlx1nshUuikcYJK3iNVepy39li0m3"
112: + "OBwub9NnnVWXuClUGwIDAQABoAAwDQYJKoZIhvcNAQEEBQADgYEAz4NpjNraufWg"
113: + "ZDv5J1muOHwZvOO9Is1L8WvMLG+jgH8Q2rPpDq8buIIWDy6VK8ghr7xhZzEZznTX"
114: + "5HLSLB1a6KvktiVSKB0nmAmDU28xXLWWwkA7/68J6DvAipk00bHdxuEJ4+Mg8UJ0"
115: + "Mr+aXDlmZUfghzlB70dDUy/Np/YJVb8=";
116:
117: public static String pkcs10_2 = "-----BEGIN CERTIFICATE REQUEST-----\n"
118: + "MIIBkzCB/QIBADBUMQswCQYDVQQGEwJzZTETMBEGA1UECBMKU29tZS1TdGF0ZTEh\n"
119: + "MB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMQ0wCwYDVQQDEwRURVNU\n"
120: + "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6zGAfzcf8+ECqvI6r2z22fI9h\n"
121: + "pVTPWkY+vpw6w6ilzhqeMJslAQG5WogOc+NpWrGLAd8UCN2AicQE1p5dFKN8URF0\n"
122: + "3eyNIXTTveQqzcAYaFHAuD2Ua1a3W9vbnPAm2NSiD3keeFMgXZqqFtnEqU/4XvA6\n"
123: + "ClrEMu5/W20N3fKyVwIDAQABoAAwDQYJKoZIhvcNAQEEBQADgYEASbGs+s5PjTYW\n"
124: + "vYQ0OOLYuNZcV2uj56FVP4jjaxed6SNC3XNrsJcqoBIUT14OTGvo+kt/Du3X5src\n"
125: + "sLtaUfVr74y1FhDq55fqAY5+k0IpJVYGlOVsAAcx5O2jUKbxZHBSQnyVBLKczITY\n"
126: + "PfoNI8s9NXa/fIfqp56llOPzDy3OcHc=\n"
127: + "-----END CERTIFICATE REQUEST-----";
128:
129: public static X509Certificate getUserCert()
130: throws CertificateException, NoSuchProviderException {
131: CertificateFactory cf = CertificateFactory.getInstance("X.509",
132: "BC");
133: return (X509Certificate) cf
134: .generateCertificate(new ByteArrayInputStream(
135: certtestuser));
136: }
137:
138: public static X509Certificate getIntermediateCert()
139: throws CertificateException, NoSuchProviderException {
140: CertificateFactory cf = CertificateFactory.getInstance("X.509",
141: "BC");
142: return (X509Certificate) cf
143: .generateCertificate(new ByteArrayInputStream(
144: certintertest));
145: }
146:
147: public static X509Certificate getRootCert()
148: throws CertificateException, NoSuchProviderException {
149: CertificateFactory cf = CertificateFactory.getInstance("X.509",
150: "BC");
151: return (X509Certificate) cf
152: .generateCertificate(new ByteArrayInputStream(
153: certroottest));
154: }
155:
156: public static PrivateKey getUserKey() throws Exception {
157: PKCS8EncodedKeySpec pkKeySpec = new PKCS8EncodedKeySpec(userkey);
158: KeyFactory keyFactory = KeyFactory.getInstance("RSA");
159: return keyFactory.generatePrivate(pkKeySpec);
160: }
161:
162: public static KeyStore getUserKeyStore() throws Exception {
163: ArrayList list = new ArrayList();
164: list.add(Constants.getRootCert());
165: list.add(Constants.getIntermediateCert());
166:
167: return KeyTools.createP12("TEST", Constants.getUserKey(),
168: Constants.getUserCert(), list);
169: }
170:
171: }
|