diff --git a/.gitattributes b/.gitattributes index d35d9873c4ad9f2668f3a87bd2762bf952950d3b..792446a59eaa0db35ab6ba9dfc68685f8347f165 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 0000000000000000000000000000000000000000..a2b4361924f10f771a0e9109ec2dee0ef58f0075 --- /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 * "."; +}