make X509_CERT_AUX opaque
[openssl.git] / crypto / asn1 / t_x509a.c
index ebd62f6..06b227e 100644 (file)
@@ -1,6 +1,7 @@
 /* t_x509a.c */
-/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
- * project 1999.
+/*
+ * Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL project
+ * 1999.
  */
 /* ====================================================================
  * Copyright (c) 1999 The OpenSSL Project.  All rights reserved.
@@ -10,7 +11,7 @@
  * are met:
  *
  * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer. 
+ *    notice, this list of conditions and the following disclaimer.
  *
  * 2. Redistributions in binary form must reproduce the above copyright
  *    notice, this list of conditions and the following disclaimer in
  */
 
 #include <stdio.h>
-#include "cryptlib.h"
+#include "internal/cryptlib.h"
 #include <openssl/evp.h>
-#include <openssl/asn1_mac.h>
+#include <openssl/asn1.h>
 #include <openssl/x509.h>
+#include "internal/x509_int.h"
 
-/* X509_CERT_AUX and string set routines
+/*
+ * X509_CERT_AUX and string set routines
  */
 
-static BIT_STRING_BITNAME tbits[] = {
-{X509_TRUST_BIT_ALL, "All Purposes", "all"},
-{X509_TRUST_BIT_SSL_CLIENT, "SSL client", "sslclient"},
-{X509_TRUST_BIT_SSL_SERVER, "SSL server", "sslserver"},
-{X509_TRUST_BIT_EMAIL, "S/MIME email", "email"},
-{X509_TRUST_BIT_OBJECT_SIGN, "Object Signing", "objsign"},
-{-1, NULL, NULL}
-};
-
-int X509_trust_set_bit_asc(X509 *x, char *str, int value)
-{
-       int bitnum;
-       bitnum = ASN1_BIT_STRING_num_asc(str, tbits);
-       if(bitnum < 0) return 0;
-       if(x) return X509_trust_set_bit(x, bitnum, value);
-       return 1;
-}
-
-int X509_notrust_set_bit_asc(X509 *x, char *str, int value)
-{
-       int bitnum;
-       bitnum = ASN1_BIT_STRING_num_asc(str, tbits);
-       if(bitnum < 0) return 0;
-       if(x) return X509_notrust_set_bit(x, bitnum, value);
-       return 1;
-}
-
-
 int X509_CERT_AUX_print(BIO *out, X509_CERT_AUX *aux, int indent)
 {
-       char oidstr[80], first;
-       int i;
-       if(!aux) return 1;
-       if(aux->trust) {
-               BIO_printf(out, "%*sTrusted for:\n", indent, "");
-               ASN1_BIT_STRING_name_print(out, aux->trust, tbits, indent + 2);
-       } else BIO_printf(out, "%*sNo Trust Settings\n", indent + 2, "");
-       if(aux->notrust) {
-               BIO_printf(out, "%*sUntrusted for:\n", indent, "");
-               ASN1_BIT_STRING_name_print(out, aux->notrust, tbits, indent + 2);
-       } else BIO_printf(out, "%*sNo Untrusted Settings\n", indent + 2, "");
-       if(aux->othertrust) {
-               first = 1;
-               BIO_printf(out, "%*sOther Trusted Uses:\n%*s",
-                                               indent, "", indent + 2, "");
-               for(i = 0; i < sk_ASN1_OBJECT_num(aux->othertrust); i++) {
-                       if(!first) BIO_puts(out, ", ");
-                       else first = 0;
-                       OBJ_obj2txt(oidstr, 80,
-                               sk_ASN1_OBJECT_value(aux->othertrust, i), 0);
-                       BIO_puts(out, oidstr);
-               }
-               BIO_puts(out, "\n");
-       }
-       if(aux->othernotrust) {
-               first = 1;
-               BIO_printf(out, "%*sOther Untrusted Uses:\n%*s",
-                                               indent, "", indent + 2, "");
-               for(i = 0; i < sk_ASN1_OBJECT_num(aux->othernotrust); i++) {
-                       if(!first) BIO_puts(out, ", ");
-                       else first = 0;
-                       OBJ_obj2txt(oidstr, 80,
-                               sk_ASN1_OBJECT_value(aux->othernotrust, i), 0);
-                       BIO_puts(out, oidstr);
-               }
-               BIO_puts(out, "\n");
-       }
-       if(aux->alias) BIO_printf(out, "%*sAlias: %s\n", indent, "",
-                                                       aux->alias->data);
-       return 1;
+    char oidstr[80], first;
+    int i;
+    if (!aux)
+        return 1;
+    if (aux->trust) {
+        first = 1;
+        BIO_printf(out, "%*sTrusted Uses:\n%*s", indent, "", indent + 2, "");
+        for (i = 0; i < sk_ASN1_OBJECT_num(aux->trust); i++) {
+            if (!first)
+                BIO_puts(out, ", ");
+            else
+                first = 0;
+            OBJ_obj2txt(oidstr, sizeof oidstr,
+                        sk_ASN1_OBJECT_value(aux->trust, i), 0);
+            BIO_puts(out, oidstr);
+        }
+        BIO_puts(out, "\n");
+    } else
+        BIO_printf(out, "%*sNo Trusted Uses.\n", indent, "");
+    if (aux->reject) {
+        first = 1;
+        BIO_printf(out, "%*sRejected Uses:\n%*s", indent, "", indent + 2, "");
+        for (i = 0; i < sk_ASN1_OBJECT_num(aux->reject); i++) {
+            if (!first)
+                BIO_puts(out, ", ");
+            else
+                first = 0;
+            OBJ_obj2txt(oidstr, sizeof oidstr,
+                        sk_ASN1_OBJECT_value(aux->reject, i), 0);
+            BIO_puts(out, oidstr);
+        }
+        BIO_puts(out, "\n");
+    } else
+        BIO_printf(out, "%*sNo Rejected Uses.\n", indent, "");
+    if (aux->alias)
+        BIO_printf(out, "%*sAlias: %s\n", indent, "", aux->alias->data);
+    if (aux->keyid) {
+        BIO_printf(out, "%*sKey Id: ", indent, "");
+        for (i = 0; i < aux->keyid->length; i++)
+            BIO_printf(out, "%s%02X", i ? ":" : "", aux->keyid->data[i]);
+        BIO_write(out, "\n", 1);
+    }
+    return 1;
 }