/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/


 
//i20156 - new file for xmlsecurity module

/** -- idl definition -- **/

#ifndef __com_sun_star_security_CertificateValidity_idl_
#define __com_sun_star_security_CertificateValidity_idl_

#include <com/sun/star/uno/XInterface.idl>
#include <com/sun/star/util/DateTime.idl>

module com { module sun { module star { module security {

/**
 * Constant definiton of a certificate characters.
 *
 * The certificate characters will be defined as bit-wise constants.
 */
constants CertificateValidity
{
    const long VALID = 0x00000000;
	/**
	 * The certificate is invalid.
	 */
	const long INVALID = 0x00000001 ;

	/**
	 * The certificate itself is untrusted.
	 */
	const long UNTRUSTED = 0x00000002 ;

	/**
	 * The current time is not in the range of time for
	 * which the certificate is valid.
	 */
	const long TIME_INVALID = 0x00000004 ;

    /** The time range of a certificate does not fall within
        the time range of the issuing certificate.
     */
    const long NOT_TIME_NESTED = 0x00000008;

	/**
	 * It is a revoked certificate.
	 */
	const long REVOKED = 0x00000010 ;

	/**
	 * The certificate revocation status is unknown.
	 */
	const long UNKNOWN_REVOKATION = 0x00000020 ;

	/**
	 * The certificate signature is invalid.
	 */
	const long SIGNATURE_INVALID = 0x00000040 ;

	/**
	 * The certificate has invalid extensions.
	 */
	const long EXTENSION_INVALID = 0x00000080 ;

	/**
	 * The certificate has critical unknown extensions.
	 */
	const long EXTENSION_UNKNOWN = 0x00000100 ;

	/**
	 * The certificate issuer is unknown.
	 */
	const long ISSUER_UNKNOWN =  0x00000200;

	/**
	 * The certificate issuer is untrusted.
	 */
	const long ISSUER_UNTRUSTED = 0x00000400 ;

	/**
	 * The certificate issuer is invalid.
	 */
	const long ISSUER_INVALID = 0x00001000 ;

	/**
	 * The root certificate is unknown.
	 */
	const long ROOT_UNKNOWN = 0x00002000 ;

	/**
	 * The root certificate is untrusted.
	 */
	const long ROOT_UNTRUSTED = 0x00004000 ;

	/**
	 * The root certificate is invalid.
	 */
	const long ROOT_INVALID = 0x00010000 ;

	/**
	 * The certificate chain is incomplete.
	 */
	const long CHAIN_INCOMPLETE = 0x00020000 ;
} ;

} ; } ; } ; } ;

#endif 

