Skip to content
Snippets Groups Projects
Commit 9f37e74c authored by Martin Nilsson's avatar Martin Nilsson
Browse files

More tests based on RSA documents.

parent 842b3e9e
No related branches found
No related tags found
No related merge requests found
......@@ -27,26 +27,70 @@ test_decode("010100","FALSE")
test_decode("010101","TRUE")
test_eval_error(Standards.ASN1.Decode.simple_der_decode("\1\0"))
test_decode("0500","NULL")
test_eq(Standards.ASN1.Decode.simple_der_decode(String.hex2string("090380fb05"-" "))->debug_string(),"REAL 0.15625")
test_eq(Standards.ASN1.Decode.simple_der_decode(String.hex2string("090390fe0a"-" "))->debug_string(),"REAL 0.15625")
test_eq(Standards.ASN1.Decode.simple_der_decode(String.hex2string("0903acfe05"-" "))->debug_string(),"REAL 0.15625")
dnl
dnl Tests from ITU-T Rec.X690 (07/2002)
dnl (originally from A Layman's Guide to a Subset of ASN.1, BER, and
dnl DER)
dnl --- START tests from
dnl A Layman's Guide to a Subset of ASN.1, BER, and DER)
dnl
dnl 5.4
test_decode("03 04 06 6e 5d c0", "BIT STRING (18) 11011100101110111")
test_decode("03 04 06 6e 5d e0", "BIT STRING (18) 11011100101110111")
test_eq(Standards.ASN1.Decode.simple_der_decode(String.hex2string("03 81 04 06 6e 5d c0"-" "))->debug_string(), "BIT STRING (18) 11011100101110111")
test_eq(Standards.ASN1.Decode.simple_der_decode(String.hex2string("23 09 03 03 00 6e 5d 03 02 06 c0"-" "))->debug_string(), "BIT STRING (18) 11011100101110111")
dnl 5.6
test_decode("16 0d 74 65 73 74 31 40 72 73 61 2e 63 6f 6d",
"Types.IA5String(\"test1@rsa.com\")")
test_eq(Standards.ASN1.Decode.simple_der_decode(String.hex2string("16 81 0d 74 65 73 74 31 40 72 73 61 2e 63 6f 6d"-" "))->debug_string(), "Types.IA5String(\"test1@rsa.com\")")
test_eq(Standards.ASN1.Decode.simple_der_decode(String.hex2string("36 13 16 05 74 65 73 74 31 16 01 40 16 07 72 73 61 2e 63 6f 6d"-" "))->debug_string(), "Types.IA5String(\"test1@rsa.com\")")
dnl 5.6
test_decode("02 01 00", "INTEGER (1) 0")
test_decode("02 01 7f", "INTEGER (7) 127")
test_decode("02 02 00 80", "INTEGER (8) 128")
test_decode("02 02 01 00", "INTEGER (9) 256")
test_decode("02 01 80", "INTEGER (8) -128")
test_decode("02 02 ff 7f", "INTEGER (8) -129")
dnl 5.8
test_decoce("05 00", "NULL")
test_eq(Standards.ASN1.Decode.simple_der_decode(String.hex2string("05 81 00"-" "))->debug_string(), "NULL")
test_eq( Types.Null()->get_der(), "\5\0" )
dnl 5.9
test_decode("06 06 2a 86 48 86 f7 0d", "IDENTIFIER 1.2.840.113549")
test_eq(Types.Identifier(1,2,840,113549)->get_der(),
String.hex2string("06062a864886f70d"))
dnl 5.10
test_decode("04 08 01 23 45 67 89 ab cd ef", "Types.OctetString(\"\\1#Eg\\211\\253\\315\\357\")")
test_eq(Standards.ASN1.Decode.simple_der_decode(String.hex2string("04 81 08 01 23 45 67 89 ab cd ef"-" "))->debug_string(), "Types.OctetString(\"\\1#Eg\\211\\253\\315\\357\")")
test_eq(Standards.ASN1.Decode.simple_der_decode(String.hex2string("24 0c 04 04 01 23 45 67 04 04 89 ab cd ef"-" "))->debug_string(), "Types.OctetString(\"\\1#Eg\\211\\253\\315\\357\")")
dnl §8.8
test_eq( Types.Null()->get_der(), "\5\0" )
dnl 5.11
test_decode("13 0b 54 65 73 74 20 55 73 65 72 20 31", "Types.PrintableString(\"Test User 1\")")
test_eq(Standards.ASN1.Decode.simple_der_decode(String.hex2string("13 81 0b 54 65 73 74 20 55 73 65 72 20 31"-" "))->debug_string(), "Types.PrintableString(\"Test User 1\")")
test_eq(Standards.ASN1.Decode.simple_der_decode(String.hex2string("33 0f 13 05 54 65 73 74 20 13 06 55 73 65 72 20 31"-" "))->debug_string(), "Types.PrintableString(\"Test User 1\")")
dnl 5.16
dnl FIXME: T61 is not encoded
dnl test_decode("14 0f 63 6c c2 65 73 20 70 75 62 6c 69 71 75 65 73", "Types.TeletexString(\"cl\\351s publiques\")")
test_eq(Standards.ASN1.Decode.simple_der_decode(String.hex2string("14 81 0f 63 6c c2 65 73 20 70 75 62 6c 69 71 75 65 73"-" "))->debug_string(), "Types.TeletexString(\"cl\\351s publiques\")")
test_eq(Standards.ASN1.Decode.simple_der_decode(String.hex2string("34 15 14 05 63 6c c2 65 73 14 01 20 14 09 70 75 62 6c 69 71 75 65 73"-" "))->debug_string(), "Types.TeletexString(\"cl\\351s publiques\")")
dnl 5.17
test_decode("17 0d 39 31 30 35 30 36 32 33 34 35 34 30 5a", "Types.UTC(\"910506234540Z\")")
dnl FIXME: Should time be normalized?
dnl test_eq(Standards.ASN1.Decode.simple_der_decode(String.hex2string("17 11 39 31 30 35 30 36 31 36 34 35 34 30 2D 30 37 30 30"-" "))->debug_string(), "Types.UTC(\"910506234540Z\")")
dnl
dnl --- END tests from
dnl A Layman's Guide to a Subset of ASN.1, BER, and DER)
dnl
dnl §8.9
test_any([[
......@@ -63,18 +107,6 @@ test_eq( Types.VisibleString("Jones")->get_der(), "\32\5Jones" )
test_eq( Types.BitString()->set_from_ascii("011011100101110111")->get_der(),
String.hex2string("0304066e5dc0") )
test_eq( Types.IA5String("test1@rsa.com")->get_der(),
String.hex2string("160d7465737431407273612e636f6d") )
test_eq( Types.Integer(0)->get_der(), String.hex2string("020100") )
test_eq( Types.Integer(127)->get_der(), String.hex2string("02017f") )
test_eq( Types.Integer(128)->get_der(), String.hex2string("02020080") )
test_eq( Types.Integer(256)->get_der(), String.hex2string("02020100") )
test_eq( Types.Integer(-128)->get_der(), String.hex2string("020180") )
test_eq( Types.Integer(-129)->get_der(), String.hex2string("0202ff7f") )
test_eq(Types.Identifier(1,2,840,113549)->get_der(),
String.hex2string("06062a864886f70d"))
test_eq(Types.OctetString(String.hex2string("0123456789abcdef"))->get_der(),
String.hex2string("04080123456789abcdef") )
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment