From 992320b67bf6b1d4d78cba26db2a4b8bd08a3579 Mon Sep 17 00:00:00 2001 From: Trolli Schmittlauch Date: Tue, 21 Apr 2020 14:21:36 +0200 Subject: [PATCH] example for encoding data as ASN1 DER --- Hash2Pub/Hash2Pub.cabal | 2 +- Hash2Pub/src/asn1test.hs | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 Hash2Pub/src/asn1test.hs diff --git a/Hash2Pub/Hash2Pub.cabal b/Hash2Pub/Hash2Pub.cabal index 2225792..09c860d 100644 --- a/Hash2Pub/Hash2Pub.cabal +++ b/Hash2Pub/Hash2Pub.cabal @@ -46,7 +46,7 @@ category: Network extra-source-files: CHANGELOG.md common deps - build-depends: base ^>=4.12.0.0, containers ^>=0.6.0.1, bytestring, utf8-string ^>=1.0.1.1, network ^>=2.8.0.1, time ^>=1.8.0.2, cmdargs ^>= 0.10, cryptonite ^>= 0.25, memory, binary-strict, async + build-depends: base ^>=4.12.0.0, containers ^>=0.6.0.1, bytestring, utf8-string ^>=1.0.1.1, network ^>=2.8.0.1, time ^>=1.8.0.2, cmdargs ^>= 0.10, cryptonite ^>= 0.25, memory, binary-strict, async, asn1-encoding, asn1-types, asn1-parse ghc-options: -Wall diff --git a/Hash2Pub/src/asn1test.hs b/Hash2Pub/src/asn1test.hs new file mode 100644 index 0000000..2fb1e7c --- /dev/null +++ b/Hash2Pub/src/asn1test.hs @@ -0,0 +1,18 @@ +{-# LANGUAGE OverloadedStrings #-} +module Main where + +import qualified Data.ASN1.Encoding as ASN1 -- asn1-encoding package +import qualified Data.ASN1.BinaryEncoding as ASN1 +import qualified Data.ASN1.Types as ASN1 -- asn1-types package + +-- import Hash2Pub.Fedichord + +-- encoding values as ASN.1 types is done using Data.ASN1.Prim +someASN1 = ASN1.encodeASN1' ASN1.DER $ ASN1.Start ASN1.Sequence : ASN1.ASN1String (ASN1.asn1CharacterString ASN1.Visible domain) : ASN1.ASN1String (ASN1.asn1CharacterString ASN1.UTF8 unicode) : map ASN1.IntVal xs ++ [ASN1.End ASN1.Sequence] + where + domain = "domains.are.ascii.on.ly" + unicode = "Hähä, but unicode string!" + xs = [ 23, 42, 2342 ] + +main = do + print someASN1