Global DirectoryString mask fix.
[openssl.git] / crypto / x509 / x509.h
index ef7213541410c616a6fbc1ebece39ac4f5756292..6b053359b72b09c75bae3fb05902ff3d1d89e619 100644 (file)
 #ifndef HEADER_X509_H
 #define HEADER_X509_H
 
-#ifdef VMS
-#undef X509_REVOKED_get_ext_by_critical
-#define X509_REVOKED_get_ext_by_critical X509_REVOKED_get_ext_by_critic
-#endif
-
+#include <openssl/symhacks.h>
 #ifndef NO_BUFFER
 #include <openssl/buffer.h>
 #endif
@@ -213,6 +209,8 @@ DECLARE_ASN1_SET_OF(X509_ATTRIBUTE)
 
 typedef struct X509_req_info_st
        {
+       unsigned char *asn1;
+       int length;
        ASN1_INTEGER *version;
        X509_NAME *subject;
        X509_PUBKEY *pubkey;
@@ -273,6 +271,8 @@ typedef struct x509_st
        unsigned long ex_kusage;
        unsigned long ex_xkusage;
        unsigned long ex_nscert;
+       ASN1_OCTET_STRING *skid;
+       struct AUTHORITY_KEYID_st *akid;
 #ifndef NO_SHA
        unsigned char sha1_hash[SHA_DIGEST_LENGTH];
 #endif
@@ -320,6 +320,21 @@ DECLARE_STACK_OF(X509_TRUST)
 #define X509_TRUST_REJECTED    2
 #define X509_TRUST_UNTRUSTED   3
 
+/* Flags for X509_print_ex() */
+
+#define        X509_FLAG_COMPAT                0
+#define        X509_FLAG_NO_HEADER             1L
+#define        X509_FLAG_NO_VERSION            (1L << 1)
+#define        X509_FLAG_NO_SERIAL             (1L << 2)
+#define        X509_FLAG_NO_SIGNAME            (1L << 3)
+#define        X509_FLAG_NO_ISSUER             (1L << 4)
+#define        X509_FLAG_NO_VALIDITY           (1L << 5)
+#define        X509_FLAG_NO_SUBJECT            (1L << 6)
+#define        X509_FLAG_NO_PUBKEY             (1L << 7)
+#define        X509_FLAG_NO_EXTENSIONS         (1L << 8)
+#define        X509_FLAG_NO_SIGDUMP            (1L << 9)
+#define        X509_FLAG_NO_AUX                (1L << 10)
+
 /* Flags specific to X509_NAME_print_ex() */   
 
 /* The field separator information */
@@ -338,10 +353,10 @@ DECLARE_STACK_OF(X509_TRUST)
 
 #define XN_FLAG_FN_MASK                (0x3 << 21)
 
-#define XN_FLAG_FN_NONE                0               /* No field names */
-#define XN_FLAG_FN_SN          (1 << 21)       /* Object short name */
-#define XN_FLAG_FN_LN          (2 << 21)       /* Object long name */
-#define XN_FLAG_FN_OID         (3 << 21)       /* Always use OIDs */
+#define XN_FLAG_FN_SN          0               /* Object short name */
+#define XN_FLAG_FN_LN          (1 << 21)       /* Object long name */
+#define XN_FLAG_FN_OID         (2 << 21)       /* Always use OIDs */
+#define XN_FLAG_FN_NONE                (3 << 21)       /* No field names */
 
 #define XN_FLAG_SPC_EQ         (1 << 23)       /* Put spaces round '=' */
 
@@ -744,6 +759,8 @@ int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp,PKCS8_PRIV_KEY_INFO *p8inf);
 int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key);
 int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey);
 EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a);
+int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey);
+EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a);
 #endif
 
 #ifndef NO_BIO
@@ -775,6 +792,8 @@ int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp,PKCS8_PRIV_KEY_INFO *p8inf);
 int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key);
 int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey);
 EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a);
+int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey);
+EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a);
 #endif
 
 X509 *X509_dup(X509 *x509);
@@ -792,7 +811,9 @@ RSA *RSAPrivateKey_dup(RSA *rsa);
 
 #endif /* !SSLEAY_MACROS */
 
+int            X509_cmp_time(ASN1_TIME *s, time_t *t);
 int            X509_cmp_current_time(ASN1_TIME *s);
+ASN1_TIME *    X509_time_adj(ASN1_TIME *s, long adj, time_t *t);
 ASN1_TIME *    X509_gmtime_adj(ASN1_TIME *s, long adj);
 
 const char *   X509_get_default_cert_area(void );
@@ -906,6 +927,7 @@ int         i2d_X509_CERT_AUX(X509_CERT_AUX *a,unsigned char **pp);
 X509_CERT_AUX *        d2i_X509_CERT_AUX(X509_CERT_AUX **a,unsigned char **pp,
                                                                long length);
 int X509_alias_set1(X509 *x, unsigned char *name, int len);
+int X509_keyid_set1(X509 *x, unsigned char *id, int len);
 unsigned char * X509_alias_get0(X509 *x, int *len);
 int (*X509_TRUST_set_default(int (*trust)(int , X509 *, int)))(int, X509 *, int);
 int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj);
@@ -1027,6 +1049,7 @@ unsigned long     X509_NAME_hash(X509_NAME *x);
 
 int            X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b);
 #ifndef NO_FP_API
+int            X509_print_ex_fp(FILE *bp,X509 *x, unsigned long nmflag, unsigned long cflag);
 int            X509_print_fp(FILE *bp,X509 *x);
 int            X509_CRL_print_fp(FILE *bp,X509_CRL *x);
 int            X509_REQ_print_fp(FILE *bp,X509_REQ *req);
@@ -1036,6 +1059,7 @@ int X509_NAME_print_ex_fp(FILE *fp, X509_NAME *nm, int indent, unsigned long fla
 #ifndef NO_BIO
 int            X509_NAME_print(BIO *bp, X509_NAME *name, int obase);
 int X509_NAME_print_ex(BIO *out, X509_NAME *nm, int indent, unsigned long flags);
+int            X509_print_ex(BIO *bp,X509 *x, unsigned long nmflag, unsigned long cflag);
 int            X509_print(BIO *bp,X509 *x);
 int            X509_CERT_AUX_print(BIO *bp,X509_CERT_AUX *x, int indent);
 int            X509_CRL_print(BIO *bp,X509_CRL *x);