From b652c9312830588ecf4a91279f9e4fbd3c8e2a18 Mon Sep 17 00:00:00 2001 From: Martin Stjernholm <mast@lysator.liu.se> Date: Tue, 22 Jul 2008 22:14:36 +0200 Subject: [PATCH] Added shortcut functions to convert OIDs between BER and dotted-decimal forms. Needed by the GSSAPI module. Rev: lib/modules/Standards.pmod/ASN1.pmod/module.pmod:1.1 --- .gitattributes | 1 + .../Standards.pmod/ASN1.pmod/module.pmod | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 lib/modules/Standards.pmod/ASN1.pmod/module.pmod diff --git a/.gitattributes b/.gitattributes index d35d9873c4..792446a59e 100644 --- a/.gitattributes +++ b/.gitattributes @@ -233,6 +233,7 @@ testfont binary /lib/modules/Sql.pmod/tds.pike foreign_ident /lib/modules/Standards.pmod/ASN1.pmod/Decode.pmod foreign_ident /lib/modules/Standards.pmod/ASN1.pmod/Types.pmod foreign_ident +/lib/modules/Standards.pmod/ASN1.pmod/module.pmod foreign_ident /lib/modules/Standards.pmod/ASN1.pmod/testsuite.in foreign_ident /lib/modules/Standards.pmod/EXIF.pmod foreign_ident /lib/modules/Standards.pmod/FIPS10_4.pmod foreign_ident diff --git a/lib/modules/Standards.pmod/ASN1.pmod/module.pmod b/lib/modules/Standards.pmod/ASN1.pmod/module.pmod new file mode 100644 index 0000000000..a2b4361924 --- /dev/null +++ b/lib/modules/Standards.pmod/ASN1.pmod/module.pmod @@ -0,0 +1,28 @@ +// $Id: module.pmod,v 1.1 2008/07/22 20:14:36 mast Exp $ + +string encode_der_oid (string dotted_decimal) +//! Convenience function to convert an oid (object identifier) on +//! dotted-decimal form (e.g. @expr{"1.3.6.1.4.1.1466.115.121.1.38"@}) +//! to its DER (and hence also BER) encoded form. +//! +//! @seealso +//! @[decode_der_oid] +{ + // NB: No syntax checking at all.. + .Types.Identifier id = .Types.Identifier(); + id->id = (array(int)) (dotted_decimal / "."); + return id->der_encode(); +} + +string decode_der_oid (string der_oid) +//! Convenience function to convert a DER/BER encoded oid (object +//! identifier) to the human readable dotted-decimal form. +//! +//! @seealso +//! @[encode_der_oid] +{ + // NB: No syntax checking at all.. + .Types.Identifier id = .Types.Identifier(); + id->decode_primitive (der_oid[2..]); + return (array(string)) id->id * "."; +} -- GitLab