1/*************************************************************************
2 *
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
6 *
7 * OpenOffice.org - a multi-platform office productivity suite
8 *
9 * This file is part of OpenOffice.org.
10 *
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
14 *
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org.  If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
25 *
26 ************************************************************************/
27
28#ifndef __com_sun_star_security_XCertificate_idl_
29#define __com_sun_star_security_XCertificate_idl_
30
31#include <com/sun/star/uno/XInterface.idl>
32#include <com/sun/star/util/DateTime.idl>
33#include <com/sun/star/security/XCertificateExtension.idl>
34
35module com { module sun { module star { module security {
36
37/**
38 * Interface of a PKI Certificate
39 *
40 * <p>This interface represents a x509 certificate.</p>
41 */
42published interface XCertificate : com::sun::star::uno::XInterface
43{
44    /**
45     * the version number attribute of the certificate.
46     */
47    [attribute, readonly] short Version ;
48
49    /**
50     * the serial number attribute of the certificate.
51     */
52    [attribute, readonly] sequence< byte > SerialNumber ;
53
54    /**
55     * the issuer name attribute of the certificate.
56     */
57    [attribute, readonly] string IssuerName ;
58
59    /**
60     * the subject name attribute of the certificate.
61     */
62    [attribute, readonly] string SubjectName ;
63
64    /**
65     * the validity NotBefore date attribute of the certificate.
66     */
67    [attribute, readonly] com::sun::star::util::DateTime NotValidBefore ;
68
69    /**
70     * the validity NotAfter date attribute of the certificate.
71     */
72    [attribute, readonly] com::sun::star::util::DateTime NotValidAfter ;
73
74    /**
75     * the issuer unique ID attribute of the certificate.
76     */
77    [attribute, readonly] sequence< byte > IssuerUniqueID ;
78
79    /**
80     * the subject unique ID attribute of the certificate.
81     */
82    [attribute, readonly] sequence< byte > SubjectUniqueID ;
83
84    /**
85     * all extensions of a certificate.
86     */
87    [attribute, readonly] sequence< XCertificateExtension > Extensions ;
88
89    /**
90     * the DER encoded form of the certificate
91     */
92    [attribute, readonly] sequence< byte > Encoded ;
93
94    /**
95     * the algorithm of the subject public key
96     */
97    [attribute, readonly] string SubjectPublicKeyAlgorithm;
98
99    /**
100     * the value of the subject public key
101     */
102    [attribute, readonly] sequence< byte > SubjectPublicKeyValue;
103
104    /**
105     * the signature algorithm
106     */
107    [attribute, readonly] string SignatureAlgorithm;
108
109    /**
110     * the SHA1 thumbprint
111     */
112    [attribute, readonly] sequence< byte > SHA1Thumbprint;
113
114    /**
115     * the MD5 thumbprint
116     */
117    [attribute, readonly] sequence< byte > MD5Thumbprint;
118
119    /**
120     * Find a extension with a object identifier.
121     */
122    XCertificateExtension findCertificateExtension( [in]sequence< byte > oid ) ;
123
124    /**
125     * get the certificate usage
126     */
127    long getCertificateUsage();
128} ;
129
130} ; } ; } ; } ;
131
132#endif
133
134