1*06b3ce53SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*06b3ce53SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*06b3ce53SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*06b3ce53SAndrew Rist  * distributed with this work for additional information
6*06b3ce53SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*06b3ce53SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*06b3ce53SAndrew Rist  * "License"); you may not use this file except in compliance
9*06b3ce53SAndrew Rist  * with the License.  You may obtain a copy of the License at
10*06b3ce53SAndrew Rist  *
11*06b3ce53SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12*06b3ce53SAndrew Rist  *
13*06b3ce53SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*06b3ce53SAndrew Rist  * software distributed under the License is distributed on an
15*06b3ce53SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*06b3ce53SAndrew Rist  * KIND, either express or implied.  See the License for the
17*06b3ce53SAndrew Rist  * specific language governing permissions and limitations
18*06b3ce53SAndrew Rist  * under the License.
19*06b3ce53SAndrew Rist  *
20*06b3ce53SAndrew Rist  *************************************************************/
21*06b3ce53SAndrew Rist 
22*06b3ce53SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove
25cdf0e10cSrcweir #include "precompiled_xmlsecurity.hxx"
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <xmlsecurity/certvalidity.hxx>
28cdf0e10cSrcweir #include <com/sun/star/security/CertificateValidity.hpp>
29cdf0e10cSrcweir 
30cdf0e10cSrcweir using ::rtl::OUString ;
31cdf0e10cSrcweir using namespace ::com::sun::star::security ;
32cdf0e10cSrcweir 
33cdf0e10cSrcweir #define VALID_STR "valid certificate"
34cdf0e10cSrcweir #define INVALID_STR "invalid certificate"
35cdf0e10cSrcweir #define UNTRUSTED_STR "untrusted certificate"
36cdf0e10cSrcweir #define TIME_INVALID_STR "expired certificate"
37cdf0e10cSrcweir #define NOT_NESTED_TIME_STR "invalid time nesting"
38cdf0e10cSrcweir #define REVOKED_STR "revoked certificate"
39cdf0e10cSrcweir #define UNKNOWN_REVOKATION_STR "unknown certificate revocation status"
40cdf0e10cSrcweir #define SIGNATURE_INVALID_STR "invalid certificate signature"
41cdf0e10cSrcweir #define EXTENSION_INVALID_STR "invalid certificate extension"
42cdf0e10cSrcweir #define EXTENSION_UNKNOWN_STR "unknown critical certificate extension"
43cdf0e10cSrcweir #define ISSUER_UNKNOWN_STR "unknown certificate issuer"
44cdf0e10cSrcweir #define ISSUER_UNTRUSTED_STR "untrusted certificate issuer"
45cdf0e10cSrcweir #define ISSUER_INVALID_STR "invalid certificate issuer"
46cdf0e10cSrcweir #define ROOT_UNKNOWN_STR "unknown root certificate"
47cdf0e10cSrcweir #define ROOT_UNTRUSTED_STR "untrusted root certificate"
48cdf0e10cSrcweir #define ROOT_INVALID_STR "invalid root certificate"
49cdf0e10cSrcweir #define CHAIN_INCOMPLETE_STR "invalid certification path"
50cdf0e10cSrcweir 
certificateValidityToOUString(::sal_Int32 certValidity)51cdf0e10cSrcweir rtl::OUString certificateValidityToOUString( ::sal_Int32 certValidity ) {
52cdf0e10cSrcweir 	OUString aValidity ;
53cdf0e10cSrcweir 
54cdf0e10cSrcweir 	if( (certValidity & CertificateValidity::VALID) == CertificateValidity::VALID ) {
55cdf0e10cSrcweir 		aValidity = OUString::createFromAscii( ( const char* )VALID_STR ) ;
56cdf0e10cSrcweir 	} else if( ( certValidity & CertificateValidity::INVALID ) == CertificateValidity::INVALID ) {
57cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )INVALID_STR ) ;
58cdf0e10cSrcweir 	} else if( ( certValidity &  CertificateValidity::UNTRUSTED ) ==  CertificateValidity::UNTRUSTED ) {
59cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )UNTRUSTED_STR ) ;
60cdf0e10cSrcweir 	} else if( ( certValidity & CertificateValidity::TIME_INVALID ) == CertificateValidity::TIME_INVALID ) {
61cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )TIME_INVALID_STR ) ;
62cdf0e10cSrcweir 	} else if( ( certValidity & CertificateValidity::NOT_TIME_NESTED ) == CertificateValidity::NOT_TIME_NESTED ) {
63cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )NOT_NESTED_TIME_STR ) ;
64cdf0e10cSrcweir 	} else if( ( certValidity & CertificateValidity::REVOKED ) == CertificateValidity::REVOKED ) {
65cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )REVOKED_STR ) ;
66cdf0e10cSrcweir 	} else if( ( certValidity &  CertificateValidity::UNKNOWN_REVOKATION ) == CertificateValidity::UNKNOWN_REVOKATION ) {
67cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )UNKNOWN_REVOKATION_STR ) ;
68cdf0e10cSrcweir 	} else if( ( certValidity &  CertificateValidity::SIGNATURE_INVALID ) == CertificateValidity::SIGNATURE_INVALID ) {
69cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )SIGNATURE_INVALID_STR ) ;
70cdf0e10cSrcweir 	} else if( ( certValidity &  CertificateValidity::EXTENSION_INVALID ) == CertificateValidity::EXTENSION_INVALID ) {
71cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )EXTENSION_INVALID_STR ) ;
72cdf0e10cSrcweir 	} else if( ( certValidity &  CertificateValidity::EXTENSION_UNKNOWN ) == CertificateValidity::EXTENSION_UNKNOWN ) {
73cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )EXTENSION_UNKNOWN_STR ) ;
74cdf0e10cSrcweir 	} else if( ( certValidity &  CertificateValidity::ISSUER_UNKNOWN ) == CertificateValidity::ISSUER_UNKNOWN ) {
75cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )ISSUER_UNKNOWN_STR ) ;
76cdf0e10cSrcweir 	} else if( ( certValidity &  CertificateValidity::ISSUER_UNTRUSTED ) == CertificateValidity::ISSUER_UNTRUSTED ) {
77cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )ISSUER_UNTRUSTED_STR ) ;
78cdf0e10cSrcweir 	} else if( ( certValidity &  CertificateValidity::ISSUER_INVALID ) == CertificateValidity::ISSUER_INVALID ) {
79cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )ISSUER_INVALID_STR ) ;
80cdf0e10cSrcweir 	} else if( ( certValidity &  CertificateValidity::ROOT_UNKNOWN ) == CertificateValidity::ROOT_UNKNOWN ) {
81cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )ROOT_UNKNOWN_STR ) ;
82cdf0e10cSrcweir 	} else if( ( certValidity &  CertificateValidity::ROOT_UNTRUSTED ) == CertificateValidity::ROOT_UNTRUSTED ) {
83cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )ROOT_UNTRUSTED_STR ) ;
84cdf0e10cSrcweir 	} else if( ( certValidity &  CertificateValidity::ROOT_INVALID ) == CertificateValidity::ROOT_INVALID ) {
85cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )ROOT_INVALID_STR ) ;
86cdf0e10cSrcweir 	} else if( ( certValidity &  CertificateValidity::CHAIN_INCOMPLETE ) == CertificateValidity::CHAIN_INCOMPLETE ) {
87cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )CHAIN_INCOMPLETE_STR ) ;
88cdf0e10cSrcweir 	} else {
89cdf0e10cSrcweir 		 aValidity = OUString::createFromAscii( ( const char* )INVALID_STR ) ;
90cdf0e10cSrcweir 	}
91cdf0e10cSrcweir 
92cdf0e10cSrcweir 	return aValidity ;
93cdf0e10cSrcweir }
94cdf0e10cSrcweir 
95