The unified diff between revisions [6afe2db1..] 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 [5dadb128c26e85f79f355a2d889b2389de39789f]
#    to [3d07a4bbddc8ec683e40448dc6a5d9307ec345c0]
#
============================================================
--- include/x509_ext.h	5dadb128c26e85f79f355a2d889b2389de39789f
+++ include/x509_ext.h	3d07a4bbddc8ec683e40448dc6a5d9307ec345c0
@@ -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;
@@ -56,6 +56,8 @@ class Extensions : public ASN1_Object
       Extensions(bool st = true) : should_throw(st) {}
       ~Extensions();
    private:
+      static Certificate_Extension* get_extension(const OID&);
+
       std::vector<Certificate_Extension*> extensions;
       bool should_throw;
    };
@@ -65,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
@@ -91,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); }
@@ -114,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); }
@@ -138,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); }
@@ -162,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; }
@@ -188,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
@@ -200,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
@@ -212,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); }
@@ -236,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
@@ -261,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;
@@ -286,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); }