summaryrefslogtreecommitdiffstats
path: root/security/manager/ssl/nsNSSASN1Object.h
diff options
context:
space:
mode:
Diffstat (limited to 'security/manager/ssl/nsNSSASN1Object.h')
-rw-r--r--security/manager/ssl/nsNSSASN1Object.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/security/manager/ssl/nsNSSASN1Object.h b/security/manager/ssl/nsNSSASN1Object.h
new file mode 100644
index 000000000..b995a58fc
--- /dev/null
+++ b/security/manager/ssl/nsNSSASN1Object.h
@@ -0,0 +1,64 @@
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+#ifndef _NSSASN_H_
+#define _NSSASN_H_
+
+#include "nscore.h"
+#include "nsIX509Cert.h"
+#include "nsCOMPtr.h"
+#include "nsString.h"
+#include "nsIASN1Sequence.h"
+#include "nsIASN1PrintableItem.h"
+#include "nsIMutableArray.h"
+
+//
+// Read comments in nsIX509Cert.idl for a description of the desired
+// purpose for this ASN1 interface implementation.
+//
+
+class nsNSSASN1Sequence : public nsIASN1Sequence
+{
+public:
+ NS_DECL_ISUPPORTS
+ NS_DECL_NSIASN1SEQUENCE
+ NS_DECL_NSIASN1OBJECT
+
+ nsNSSASN1Sequence();
+protected:
+ virtual ~nsNSSASN1Sequence();
+ /* additional members */
+private:
+ nsCOMPtr<nsIMutableArray> mASN1Objects;
+ nsString mDisplayName;
+ nsString mDisplayValue;
+ uint32_t mType;
+ uint32_t mTag;
+ bool mIsValidContainer;
+ bool mIsExpanded;
+};
+
+class nsNSSASN1PrintableItem : public nsIASN1PrintableItem
+{
+public:
+ NS_DECL_ISUPPORTS
+ NS_DECL_NSIASN1PRINTABLEITEM
+ NS_DECL_NSIASN1OBJECT
+
+ nsNSSASN1PrintableItem();
+protected:
+ virtual ~nsNSSASN1PrintableItem();
+ /* additional members */
+private:
+ nsString mDisplayName;
+ nsString mValue;
+ uint32_t mType;
+ uint32_t mTag;
+ unsigned char *mData;
+ uint32_t mLen;
+};
+
+nsresult CreateFromDER(unsigned char *data,
+ unsigned int len,
+ nsIASN1Object **retval);
+#endif //_NSSASN_H_