01: /*
02: * BEGIN_HEADER - DO NOT EDIT
03: *
04: * The contents of this file are subject to the terms
05: * of the Common Development and Distribution License
06: * (the "License"). You may not use this file except
07: * in compliance with the License.
08: *
09: * You can obtain a copy of the license at
10: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
11: * See the License for the specific language governing
12: * permissions and limitations under the License.
13: *
14: * When distributing Covered Code, include this CDDL
15: * HEADER in each file and include the License file at
16: * https://open-esb.dev.java.net/public/CDDLv1.0.html.
17: * If applicable add the following below this CDDL HEADER,
18: * with the fields enclosed by brackets "[]" replaced with
19: * your own identifying information: Portions Copyright
20: * [year] [name of copyright owner]
21: */
22:
23: /*
24: * @(#)CertificateHelper.java
25: * Copyright 2004-2007 Sun Microsystems, Inc. All Rights Reserved.
26: *
27: * END_HEADER - DO NOT EDIT
28: */
29: /**
30: * CertificateHelper.java
31: *
32: * SUN PROPRIETARY/CONFIDENTIAL.
33: * This software is the proprietary information of Sun Microsystems, Inc.
34: * Use is subject to license terms.
35: *
36: */package com.sun.jbi.internal.security.callback;
37:
38: import java.security.cert.X509Certificate;
39:
40: /**
41: * Certificate Helper Class.
42: *
43: * @author Sun Microsystems, Inc.
44: */
45: public class CertificateHelper {
46: /** OID for Subject Key Identifier. */
47: private static final String SUBJECT_KEY_IDENTIFIER_OID = "2.5.29.14";
48:
49: /** Offset */
50: private static final int OFFSET = 4;
51:
52: /**
53: * Get the Subject Key Identifier for the Certificate.
54: * @param cert is the X509 Certificate
55: * @return the subject key identifier of the certificate.
56: */
57: protected static byte[] getSubjectKeyIdentifier(X509Certificate cert) {
58:
59: byte[] subjectKeyIdentifier = cert
60: .getExtensionValue(SUBJECT_KEY_IDENTIFIER_OID);
61: if (subjectKeyIdentifier == null) {
62: return null;
63: }
64: byte[] dest = new byte[subjectKeyIdentifier.length - OFFSET];
65: System.arraycopy(subjectKeyIdentifier, OFFSET, dest, 0,
66: subjectKeyIdentifier.length - OFFSET);
67: return dest;
68: }
69: }
|