The unified diff between revisions [8cda68e8..] and [4e40e885..] is displayed below. It can also be downloaded as a raw diff.

This diff has been restricted to the following files: 'include/x509_ext.h'

#
#
# patch "include/x509_ext.h"
#  from [f363f501b7144c0b89cc349630fa661b39100701]
#    to [3d07a4bbddc8ec683e40448dc6a5d9307ec345c0]
#
============================================================
--- include/x509_ext.h	f363f501b7144c0b89cc349630fa661b39100701
+++ include/x509_ext.h	3d07a4bbddc8ec683e40448dc6a5d9307ec345c0
@@ -1,6 +1,6 @@
 /*************************************************
 * X.509 Certificate Extensions Header File       *
-* (C) 1999-2006 The Botan Project                *
+* (C) 1999-2007 Jack Lloyd                       *
 *************************************************/

 #ifndef BOTAN_X509_EXTENSIONS_H__
@@ -17,7 +17,7 @@ namespace Botan {
 /*************************************************
 * X.509 Certificate Extension                    *
 *************************************************/
-class Certificate_Extension
+class BOTAN_DLL Certificate_Extension
    {
    public:
       OID oid_of() const;
@@ -39,7 +39,7 @@ class Certificate_Extension
 /*************************************************
 * X.509 Certificate Extension List               *
 *************************************************/
-class Extensions : public ASN1_Object
+class BOTAN_DLL Extensions : public ASN1_Object
    {
    public:
       void encode_into(class DER_Encoder&) const;
@@ -50,14 +50,14 @@ class Extensions : public ASN1_Object
       void add(Certificate_Extension* extn)
          { extensions.push_back(extn); }

-      Extensions& operator=(const Extensions& e)
-         { return copy_this(e); }
+      Extensions& operator=(const Extensions&);

+      Extensions(const Extensions&);
       Extensions(bool st = true) : should_throw(st) {}
-      Extensions(const Extensions& e) : ASN1_Object() { copy_this(e); }
       ~Extensions();
    private:
-      Extensions& copy_this(const Extensions&);
+      static Certificate_Extension* get_extension(const OID&);
+
       std::vector<Certificate_Extension*> extensions;
       bool should_throw;
    };
@@ -67,7 +67,7 @@ namespace Cert_Extension {
 /*************************************************
 * Basic Constraints Extension                    *
 *************************************************/
-class Basic_Constraints : public Certificate_Extension
+class BOTAN_DLL Basic_Constraints : public Certificate_Extension
    {
    public:
       Basic_Constraints* copy() const
@@ -77,7 +77,7 @@ class Basic_Constraints : public Certifi
          is_ca(ca), path_limit(limit) {}

       bool get_is_ca() const { return is_ca; }
-      bool get_path_limit() const;
+      u32bit get_path_limit() const;
    private:
       std::string config_id() const { return "basic_constraints"; }
       std::string oid_name() const { return "X509v3.BasicConstraints"; }
@@ -93,7 +93,7 @@ class Basic_Constraints : public Certifi
 /*************************************************
 * Key Usage Constraints Extension                *
 *************************************************/
-class Key_Usage : public Certificate_Extension
+class BOTAN_DLL Key_Usage : public Certificate_Extension
    {
    public:
       Key_Usage* copy() const { return new Key_Usage(constraints); }
@@ -116,7 +116,7 @@ class Key_Usage : public Certificate_Ext
 /*************************************************
 * Subject Key Identifier Extension               *
 *************************************************/
-class Subject_Key_ID : public Certificate_Extension
+class BOTAN_DLL Subject_Key_ID : public Certificate_Extension
    {
    public:
       Subject_Key_ID* copy() const { return new Subject_Key_ID(key_id); }
@@ -140,7 +140,7 @@ class Subject_Key_ID : public Certificat
 /*************************************************
 * Authority Key Identifier Extension             *
 *************************************************/
-class Authority_Key_ID : public Certificate_Extension
+class BOTAN_DLL Authority_Key_ID : public Certificate_Extension
    {
    public:
       Authority_Key_ID* copy() const { return new Authority_Key_ID(key_id); }
@@ -164,7 +164,7 @@ class Authority_Key_ID : public Certific
 /*************************************************
 * Alternative Name Extension Base Class          *
 *************************************************/
-class Alternative_Name : public Certificate_Extension
+class BOTAN_DLL Alternative_Name : public Certificate_Extension
    {
    public:
       AlternativeName get_alt_name() const { return alt_name; }
@@ -190,7 +190,7 @@ class Alternative_Name : public Certific
 /*************************************************
 * Subject Alternative Name Extension             *
 *************************************************/
-class Subject_Alternative_Name : public Alternative_Name
+class BOTAN_DLL Subject_Alternative_Name : public Alternative_Name
    {
    public:
       Subject_Alternative_Name* copy() const
@@ -202,7 +202,7 @@ class Subject_Alternative_Name : public
 /*************************************************
 * Issuer Alternative Name Extension              *
 *************************************************/
-class Issuer_Alternative_Name : public Alternative_Name
+class BOTAN_DLL Issuer_Alternative_Name : public Alternative_Name
    {
    public:
       Issuer_Alternative_Name* copy() const
@@ -214,7 +214,7 @@ class Issuer_Alternative_Name : public A
 /*************************************************
 * Extended Key Usage Extension                   *
 *************************************************/
-class Extended_Key_Usage : public Certificate_Extension
+class BOTAN_DLL Extended_Key_Usage : public Certificate_Extension
    {
    public:
       Extended_Key_Usage* copy() const { return new Extended_Key_Usage(oids); }
@@ -238,7 +238,7 @@ class Extended_Key_Usage : public Certif
 /*************************************************
 * Certificate Policies Extension                 *
 *************************************************/
-class Certificate_Policies : public Certificate_Extension
+class BOTAN_DLL Certificate_Policies : public Certificate_Extension
    {
    public:
       Certificate_Policies* copy() const
@@ -263,7 +263,7 @@ class Certificate_Policies : public Cert
 /*************************************************
 * CRL Number Extension                           *
 *************************************************/
-class CRL_Number : public Certificate_Extension
+class BOTAN_DLL CRL_Number : public Certificate_Extension
    {
    public:
       CRL_Number* copy() const;
@@ -288,7 +288,7 @@ class CRL_Number : public Certificate_Ex
 /*************************************************
 * CRL Entry Reason Code Extension                *
 *************************************************/
-class CRL_ReasonCode : public Certificate_Extension
+class BOTAN_DLL CRL_ReasonCode : public Certificate_Extension
    {
    public:
       CRL_ReasonCode* copy() const { return new CRL_ReasonCode(reason); }