/*
* gnome-keyring
*
* Copyright (C) 2010 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 or can be included directly."
#endif
#ifndef GCRTYPES_H_
#define GCRTYPES_H_
#include
#ifndef GCK_API_SUBJECT_TO_CHANGE
#ifndef __GI_SCANNER__
#define GCK_API_SUBJECT_TO_CHANGE 1
#define __GCR_DEFINED_GCK_SUBJECT_TO_CHANGE__ 1
#endif
#endif
#include
#ifdef __GCR_DEFINED_GCK_SUBJECT_TO_CHANGE__
#undef GCK_API_SUBJECT_TO_CHANGE
#endif
G_BEGIN_DECLS
#define GCR_DATA_ERROR (gcr_data_error_get_domain ())
GQuark gcr_data_error_get_domain (void) G_GNUC_CONST;
typedef enum {
GCR_ERROR_FAILURE = -1,
GCR_ERROR_UNRECOGNIZED = 1,
GCR_ERROR_CANCELLED = 2,
GCR_ERROR_LOCKED = 3
} GcrDataError;
typedef enum {
GCR_FORMAT_ALL = -1,
GCR_FORMAT_INVALID = 0,
GCR_FORMAT_DER_PRIVATE_KEY = 100,
GCR_FORMAT_DER_PRIVATE_KEY_RSA,
GCR_FORMAT_DER_PRIVATE_KEY_DSA,
GCR_FORMAT_DER_PRIVATE_KEY_EC,
GCR_FORMAT_DER_SUBJECT_PUBLIC_KEY = 150,
GCR_FORMAT_DER_CERTIFICATE_X509 = 200,
GCR_FORMAT_DER_PKCS7 = 300,
GCR_FORMAT_DER_PKCS8 = 400,
GCR_FORMAT_DER_PKCS8_PLAIN,
GCR_FORMAT_DER_PKCS8_ENCRYPTED,
GCR_FORMAT_DER_PKCS10 = 450,
GCR_FORMAT_DER_SPKAC = 455,
GCR_FORMAT_BASE64_SPKAC,
GCR_FORMAT_DER_PKCS12 = 500,
GCR_FORMAT_OPENSSH_PUBLIC = 600,
GCR_FORMAT_OPENPGP_PACKET = 700,
GCR_FORMAT_OPENPGP_ARMOR,
GCR_FORMAT_PEM = 1000,
GCR_FORMAT_PEM_PRIVATE_KEY_RSA,
GCR_FORMAT_PEM_PRIVATE_KEY_DSA,
GCR_FORMAT_PEM_CERTIFICATE_X509,
GCR_FORMAT_PEM_PKCS7,
GCR_FORMAT_PEM_PKCS8_PLAIN,
GCR_FORMAT_PEM_PKCS8_ENCRYPTED,
GCR_FORMAT_PEM_PKCS12,
GCR_FORMAT_PEM_PRIVATE_KEY,
GCR_FORMAT_PEM_PKCS10,
GCR_FORMAT_PEM_PRIVATE_KEY_EC,
GCR_FORMAT_PEM_PUBLIC_KEY,
} GcrDataFormat;
/*
* Special PKCS#11 style attributes that we use internally in GCR.
* These are used by GcrParser the most
*/
enum {
/* An object class representing GcrRecord/gnupg-colons style data */
CKO_GCR_GNUPG_RECORDS = (CKO_VENDOR_DEFINED | 0x47435200UL /* GCR0 */),
CKO_GCR_CERTIFICATE_REQUEST,
CKA_GCR_CERTIFICATE_REQUEST_TYPE,
};
enum {
CKQ_GCR_PKCS10 = 1,
CKQ_GCR_SPKAC
};
G_END_DECLS
#endif /* GCRTYPES_H_ */