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)51cdf0e10cSrcweirrtl::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