/* * gcr * * Copyright (C) 2011 Collabora Ltd. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation; either version 2.1 of * the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, see . * * Author: Stef Walter */ #if !defined (__GCR_INSIDE_HEADER__) && !defined (GCR_COMPILATION) #error "Only can be included directly." #endif #ifndef GCR_CERTIFICATE_EXTENSIONS_H #define GCR_CERTIFICATE_EXTENSIONS_H #include #include #include "gcr-certificate-extension.h" G_BEGIN_DECLS /* Helper objects */ #define GCR_TYPE_GENERAL_NAME (gcr_general_name_get_type ()) G_DECLARE_FINAL_TYPE (GcrGeneralName, gcr_general_name, GCR, GENERAL_NAME, GObject) const char * gcr_general_name_get_description (GcrGeneralName *self); const char * gcr_general_name_get_value (GcrGeneralName *self); GBytes * gcr_general_name_get_value_raw (GcrGeneralName *self); #define GCR_TYPE_GENERAL_NAMES (gcr_general_names_get_type ()) G_DECLARE_FINAL_TYPE (GcrGeneralNames, gcr_general_names, GCR, GENERAL_NAMES, GObject) GcrGeneralName * gcr_general_names_get_name (GcrGeneralNames *self, unsigned int position); /* Basic Constraints */ #define GCR_TYPE_CERTIFICATE_EXTENSION_BASIC_CONSTRAINTS (gcr_certificate_extension_basic_constraints_get_type ()) G_DECLARE_FINAL_TYPE (GcrCertificateExtensionBasicConstraints, gcr_certificate_extension_basic_constraints, GCR, CERTIFICATE_EXTENSION_BASIC_CONSTRAINTS, GcrCertificateExtension) gboolean gcr_certificate_extension_basic_constraints_is_ca (GcrCertificateExtensionBasicConstraints *self); int gcr_certificate_extension_basic_constraints_get_path_len_constraint (GcrCertificateExtensionBasicConstraints *self); /* Key Usage */ #define GCR_TYPE_CERTIFICATE_EXTENSION_KEY_USAGE (gcr_certificate_extension_key_usage_get_type ()) G_DECLARE_FINAL_TYPE (GcrCertificateExtensionKeyUsage, gcr_certificate_extension_key_usage, GCR, CERTIFICATE_EXTENSION_KEY_USAGE, GcrCertificateExtension) unsigned long gcr_certificate_extension_key_usage_get_usages (GcrCertificateExtensionKeyUsage *self); GStrv gcr_certificate_extension_key_usage_get_descriptions (GcrCertificateExtensionKeyUsage *self); /* Extended Key Usage */ #define GCR_TYPE_CERTIFICATE_EXTENSION_EXTENDED_KEY_USAGE (gcr_certificate_extension_extended_key_usage_get_type ()) G_DECLARE_FINAL_TYPE (GcrCertificateExtensionExtendedKeyUsage, gcr_certificate_extension_extended_key_usage, GCR, CERTIFICATE_EXTENSION_EXTENDED_KEY_USAGE, GcrCertificateExtension) GStrv gcr_certificate_extension_extended_key_usage_get_oids (GcrCertificateExtensionExtendedKeyUsage *self); GStrv gcr_certificate_extension_extended_key_usage_get_descriptions (GcrCertificateExtensionExtendedKeyUsage *self); /* Subject Key Identifier */ #define GCR_TYPE_CERTIFICATE_EXTENSION_SUBJECT_KEY_IDENTIFIER (gcr_certificate_extension_subject_key_identifier_get_type ()) G_DECLARE_FINAL_TYPE (GcrCertificateExtensionSubjectKeyIdentifier, gcr_certificate_extension_subject_key_identifier, GCR, CERTIFICATE_EXTENSION_SUBJECT_KEY_IDENTIFIER, GcrCertificateExtension) GBytes * gcr_certificate_extension_subject_key_identifier_get_key_id (GcrCertificateExtensionSubjectKeyIdentifier *self); /* Authority Key Identifier */ #define GCR_TYPE_CERTIFICATE_EXTENSION_AUTHORITY_KEY_IDENTIFIER (gcr_certificate_extension_authority_key_identifier_get_type ()) G_DECLARE_FINAL_TYPE (GcrCertificateExtensionAuthorityKeyIdentifier, gcr_certificate_extension_authority_key_identifier, GCR, CERTIFICATE_EXTENSION_AUTHORITY_KEY_IDENTIFIER, GcrCertificateExtension) GBytes * gcr_certificate_extension_authority_key_identifier_get_key_id (GcrCertificateExtensionAuthorityKeyIdentifier *self); GcrGeneralNames * gcr_certificate_extension_authority_key_identifier_get_authority_cert_issuer (GcrCertificateExtensionAuthorityKeyIdentifier *self); GBytes * gcr_certificate_extension_authority_key_identifier_get_authority_cert_serial_number (GcrCertificateExtensionAuthorityKeyIdentifier *self); /* Subject Alt Name */ #define GCR_TYPE_CERTIFICATE_EXTENSION_SUBJECT_ALT_NAME (gcr_certificate_extension_subject_alt_name_get_type ()) G_DECLARE_FINAL_TYPE (GcrCertificateExtensionSubjectAltName, gcr_certificate_extension_subject_alt_name, GCR, CERTIFICATE_EXTENSION_SUBJECT_ALT_NAME, GcrCertificateExtension) GcrGeneralName * gcr_certificate_extension_subject_alt_name_get_name (GcrCertificateExtensionSubjectAltName *self, unsigned int position); /* Certificate Policies */ #define GCR_TYPE_CERTIFICATE_POLICY_QUALIFIER (gcr_certificate_policy_qualifier_get_type ()) G_DECLARE_FINAL_TYPE (GcrCertificatePolicyQualifier, gcr_certificate_policy_qualifier, GCR, CERTIFICATE_POLICY_QUALIFIER, GObject) const char * gcr_certificate_policy_qualifier_get_oid (GcrCertificatePolicyQualifier *self); const char * gcr_certificate_policy_qualifier_get_name (GcrCertificatePolicyQualifier *self); #define GCR_TYPE_CERTIFICATE_POLICY (gcr_certificate_policy_get_type ()) G_DECLARE_FINAL_TYPE (GcrCertificatePolicy, gcr_certificate_policy, GCR, CERTIFICATE_POLICY, GObject) const char * gcr_certificate_policy_get_oid (GcrCertificatePolicy *self); const char * gcr_certificate_policy_get_name (GcrCertificatePolicy *self); #define GCR_TYPE_CERTIFICATE_EXTENSION_CERTIFICATE_POLICIES (gcr_certificate_extension_certificate_policies_get_type ()) G_DECLARE_FINAL_TYPE (GcrCertificateExtensionCertificatePolicies, gcr_certificate_extension_certificate_policies, GCR, CERTIFICATE_EXTENSION_CERTIFICATE_POLICIES, GcrCertificateExtension) GcrCertificatePolicy * gcr_certificate_extension_certificate_policies_get_policy (GcrCertificateExtensionCertificatePolicies *self, unsigned int position); /* Authority Information Access (AIA) */ #define GCR_TYPE_ACCESS_DESCRIPTION (gcr_access_description_get_type ()) G_DECLARE_FINAL_TYPE (GcrAccessDescription, gcr_access_description, GCR, ACCESS_DESCRIPTION, GObject) const char * gcr_access_description_get_method_oid (GcrAccessDescription *self); const char * gcr_access_description_get_method_name (GcrAccessDescription *self); GcrGeneralName * gcr_access_description_get_location (GcrAccessDescription *self); #define GCR_TYPE_CERTIFICATE_EXTENSION_AUTHORITY_INFO_ACCESS (gcr_certificate_extension_authority_info_access_get_type ()) G_DECLARE_FINAL_TYPE (GcrCertificateExtensionAuthorityInfoAccess, gcr_certificate_extension_authority_info_access, GCR, CERTIFICATE_EXTENSION_AUTHORITY_INFO_ACCESS, GcrCertificateExtension) GcrAccessDescription * gcr_certificate_extension_authority_info_access_get_description (GcrCertificateExtensionAuthorityInfoAccess *self, unsigned int position); /* CRL Distribution Points */ #define GCR_TYPE_DISTRIBUTION_POINT (gcr_distribution_point_get_type ()) G_DECLARE_FINAL_TYPE (GcrDistributionPoint, gcr_distribution_point, GCR, DISTRIBUTION_POINT, GObject) GcrGeneralNames * gcr_distribution_point_get_full_name (GcrDistributionPoint *self); char * gcr_distribution_point_get_relative_name_part (GcrDistributionPoint *self, const char *part); #define GCR_TYPE_CERTIFICATE_EXTENSION_CRL_DISTRIBUTION_POINTS (gcr_certificate_extension_crl_distribution_points_get_type ()) G_DECLARE_FINAL_TYPE (GcrCertificateExtensionCrlDistributionPoints, gcr_certificate_extension_crl_distribution_points, GCR, CERTIFICATE_EXTENSION_CRL_DISTRIBUTION_POINTS, GcrCertificateExtension) GcrDistributionPoint * gcr_certificate_extension_crl_distribution_points_get_distribution_point (GcrCertificateExtensionCrlDistributionPoints *self, unsigned int position); G_END_DECLS #endif /* GCR_CERTIFICATE_EXTENSIONS_H */