3a032c36c1
Omit negative integers and MPIs that would result in values that look like negative INTEGERs, since the library doesn't respect the specifications there, but fixing it has a serious risk of breaking interoperability when ASN.1 is used in X.509 and other cryptography-related applications.
248 lines
14 KiB
Text
248 lines
14 KiB
Text
ASN.1 Write BOOLEAN FALSE
|
|
mbedtls_asn1_write_bool:0:"010100"
|
|
|
|
ASN.1 Write BOOLEAN TRUE
|
|
mbedtls_asn1_write_bool:1:"0101ff"
|
|
|
|
ASN.1 Write int 0
|
|
mbedtls_asn1_write_int:0:"020100"
|
|
|
|
ASN.1 Write int 1
|
|
mbedtls_asn1_write_int:1:"020101"
|
|
|
|
ASN.1 Write int 127
|
|
mbedtls_asn1_write_int:0x7f:"02017f"
|
|
|
|
ASN.1 Write int 128
|
|
mbedtls_asn1_write_int:0x80:"02020080"
|
|
|
|
ASN.1 Write int 255
|
|
mbedtls_asn1_write_int:0xff:"020200ff"
|
|
|
|
ASN.1 Write int 256
|
|
mbedtls_asn1_write_int:0x100:"02020100"
|
|
|
|
ASN.1 Write int 32767
|
|
mbedtls_asn1_write_int:0x7fff:"02027fff"
|
|
|
|
ASN.1 Write int 32768
|
|
mbedtls_asn1_write_int:0x8000:"0203008000"
|
|
|
|
ASN.1 Write int 65535
|
|
mbedtls_asn1_write_int:0xffff:"020300ffff"
|
|
|
|
ASN.1 Write int 65536
|
|
mbedtls_asn1_write_int:0x10000:"0203010000"
|
|
|
|
ASN.1 Write int 8388607
|
|
mbedtls_asn1_write_int:0x7fffff:"02037fffff"
|
|
|
|
ASN.1 Write int 8388608
|
|
mbedtls_asn1_write_int:0x800000:"020400800000"
|
|
|
|
ASN.1 Write int 0x12345678
|
|
mbedtls_asn1_write_int:0x12345678:"020412345678"
|
|
|
|
ASN.1 Write int 2147483647
|
|
mbedtls_asn1_write_int:0x7fffffff:"02047fffffff"
|
|
|
|
#ASN.1 Write mpi 0
|
|
#mbedtls_asn1_write_mpi:"00":"020100"
|
|
|
|
ASN.1 Write mpi 1
|
|
mbedtls_asn1_write_mpi:"01":"020101"
|
|
|
|
ASN.1 Write mpi 0x7f
|
|
mbedtls_asn1_write_mpi:"7f":"02017f"
|
|
|
|
#ASN.1 Write mpi 0x80
|
|
#mbedtls_asn1_write_mpi:"7f":"02020080"
|
|
|
|
#ASN.1 Write mpi 0xff
|
|
#mbedtls_asn1_write_mpi:"7f":"020200ff"
|
|
|
|
ASN.1 Write mpi 0x100
|
|
mbedtls_asn1_write_mpi:"0100":"02020100"
|
|
|
|
ASN.1 Write mpi, 127*8-1 bits
|
|
mbedtls_asn1_write_mpi:"7f7b16e05c1537de7c41cef1a0985d6a3ced98aec28e091874cbad6b5e40a5c956258f18861c28bed8ba808259339ee34b2e509c4080149474d5d5b86093f90c475a6443fc87e1a293d4151be625d652f1c32a00a018bba10c8a2ae5b2b0ee4be64e053dce9d07ec7919526c9dfcf2ec9fc3db485caa8e5a68a2cd0a427de8":"027f7f7b16e05c1537de7c41cef1a0985d6a3ced98aec28e091874cbad6b5e40a5c956258f18861c28bed8ba808259339ee34b2e509c4080149474d5d5b86093f90c475a6443fc87e1a293d4151be625d652f1c32a00a018bba10c8a2ae5b2b0ee4be64e053dce9d07ec7919526c9dfcf2ec9fc3db485caa8e5a68a2cd0a427de8"
|
|
|
|
#ASN.1 Write mpi, 127*8 bits
|
|
#mbedtls_asn1_write_mpi:"e77b16e05c1537de7c41cef1a0985d6a3ced98aec28e091874cbad6b5e40a5c956258f18861c28bed8ba808259339ee34b2e509c4080149474d5d5b86093f90c475a6443fc87e1a293d4151be625d652f1c32a00a018bba10c8a2ae5b2b0ee4be64e053dce9d07ec7919526c9dfcf2ec9fc3db485caa8e5a68a2cd0a427de8":"028180e77b16e05c1537de7c41cef1a0985d6a3ced98aec28e091874cbad6b5e40a5c956258f18861c28bed8ba808259339ee34b2e509c4080149474d5d5b86093f90c475a6443fc87e1a293d4151be625d652f1c32a00a018bba10c8a2ae5b2b0ee4be64e053dce9d07ec7919526c9dfcf2ec9fc3db485caa8e5a68a2cd0a427de8"
|
|
|
|
ASN.1 Write mpi, 127*8+1 bits
|
|
mbedtls_asn1_write_mpi:"108446d68934cc1af23c4cd909884d4bd737a1890e12f5ef8bf3d807d72feffa63c0bf2633345f8b8418d144617c871a7a0277ac0150eed4b3db7f9dff21114cd0d7f282400f03c931cb00c367550e374a1ed3762a1801ca714cfc8d5aac69707ca81e0661400ed0014d97cba48f94d835dd681fc3053c51958afbf7583cf49c":"028180108446d68934cc1af23c4cd909884d4bd737a1890e12f5ef8bf3d807d72feffa63c0bf2633345f8b8418d144617c871a7a0277ac0150eed4b3db7f9dff21114cd0d7f282400f03c931cb00c367550e374a1ed3762a1801ca714cfc8d5aac69707ca81e0661400ed0014d97cba48f94d835dd681fc3053c51958afbf7583cf49c"
|
|
|
|
ASN.1 Write mpi, 255*8-1 bits
|
|
mbedtls_asn1_write_mpi:"7bd1913fcfb652896209ad3e62f5d04a8dfc71eb1698543c52200bd7bbf3c11dd9ff57c299a2f4da172b3d5bd7e29affddf8859be7d50a45537a0df15b17af603d18803fd17134847cba78d83e64bf9fee58364d6124add0541da7bad331cd35fb48186a74bc502ddb967602401c0db02b19e5d38f09e8618fa7f6a1a3f738629baffdc63d9d70d396007d943fd64ae696e5b7e88f2c6d6ec322b461dbddd36efa91d990343b66419cf4832a22dc9ad13021185a1bf007989a50ba3bfd1152b8db899482d3ed498d1b9fae243a3cdae9530d8b29fdb684f70cdc0c9b8527265312603b405e67d59d4b1d654ddc3b7fd5515acb32440dc80903c8474a2c136c":"0281ff7bd1913fcfb652896209ad3e62f5d04a8dfc71eb1698543c52200bd7bbf3c11dd9ff57c299a2f4da172b3d5bd7e29affddf8859be7d50a45537a0df15b17af603d18803fd17134847cba78d83e64bf9fee58364d6124add0541da7bad331cd35fb48186a74bc502ddb967602401c0db02b19e5d38f09e8618fa7f6a1a3f738629baffdc63d9d70d396007d943fd64ae696e5b7e88f2c6d6ec322b461dbddd36efa91d990343b66419cf4832a22dc9ad13021185a1bf007989a50ba3bfd1152b8db899482d3ed498d1b9fae243a3cdae9530d8b29fdb684f70cdc0c9b8527265312603b405e67d59d4b1d654ddc3b7fd5515acb32440dc80903c8474a2c136c"
|
|
|
|
#ASN.1 Write mpi, 255*8 bits
|
|
#mbedtls_asn1_write_mpi:"fbd1913fcfb652896209ad3e62f5d04a8dfc71eb1698543c52200bd7bbf3c11dd9ff57c299a2f4da172b3d5bd7e29affddf8859be7d50a45537a0df15b17af603d18803fd17134847cba78d83e64bf9fee58364d6124add0541da7bad331cd35fb48186a74bc502ddb967602401c0db02b19e5d38f09e8618fa7f6a1a3f738629baffdc63d9d70d396007d943fd64ae696e5b7e88f2c6d6ec322b461dbddd36efa91d990343b66419cf4832a22dc9ad13021185a1bf007989a50ba3bfd1152b8db899482d3ed498d1b9fae243a3cdae9530d8b29fdb684f70cdc0c9b8527265312603b405e67d59d4b1d654ddc3b7fd5515acb32440dc80903c8474a2c136c":"0282010000fbd1913fcfb652896209ad3e62f5d04a8dfc71eb1698543c52200bd7bbf3c11dd9ff57c299a2f4da172b3d5bd7e29affddf8859be7d50a45537a0df15b17af603d18803fd17134847cba78d83e64bf9fee58364d6124add0541da7bad331cd35fb48186a74bc502ddb967602401c0db02b19e5d38f09e8618fa7f6a1a3f738629baffdc63d9d70d396007d943fd64ae696e5b7e88f2c6d6ec322b461dbddd36efa91d990343b66419cf4832a22dc9ad13021185a1bf007989a50ba3bfd1152b8db899482d3ed498d1b9fae243a3cdae9530d8b29fdb684f70cdc0c9b8527265312603b405e67d59d4b1d654ddc3b7fd5515acb32440dc80903c8474a2c136c"
|
|
|
|
ASN.1 Write mpi, 256*8-1 bits
|
|
mbedtls_asn1_write_mpi:"7bd1913fcfb652896209ad3e62f5d04a8dfc71eb1698543c52200bd7bbf3c11dd9ff57c299a2f4da172b3d5bd7e29affddf8859be7d50a45537a0df15b17af603d18803fd17134847cba78d83e64bf9fee58364d6124add0541da7bad331cd35fb48186a74bc502ddb967602401c0db02b19e5d38f09e8618fa7f6a1a3f738629baffdc63d9d70d396007d943fd64ae696e5b7e88f2c6d6ec322b461dbddd36efa91d990343b66419cf4832a22dc9ad13021185a1bf007989a50ba3bfd1152b8db899482d3ed498d1b9fae243a3cdae9530d8b29fdb684f70cdc0c9b8527265312603b405e67d59d4b1d654ddc3b7fd5515acb32440dc80903c8474a2c136c89":"028201007bd1913fcfb652896209ad3e62f5d04a8dfc71eb1698543c52200bd7bbf3c11dd9ff57c299a2f4da172b3d5bd7e29affddf8859be7d50a45537a0df15b17af603d18803fd17134847cba78d83e64bf9fee58364d6124add0541da7bad331cd35fb48186a74bc502ddb967602401c0db02b19e5d38f09e8618fa7f6a1a3f738629baffdc63d9d70d396007d943fd64ae696e5b7e88f2c6d6ec322b461dbddd36efa91d990343b66419cf4832a22dc9ad13021185a1bf007989a50ba3bfd1152b8db899482d3ed498d1b9fae243a3cdae9530d8b29fdb684f70cdc0c9b8527265312603b405e67d59d4b1d654ddc3b7fd5515acb32440dc80903c8474a2c136c89"
|
|
|
|
ASN.1 Write Octet String #0 (Empty string)
|
|
mbedtls_asn1_write_octet_string:"":"0400":2:2
|
|
|
|
ASN.1 Write Octet String #1 (Large buffer)
|
|
mbedtls_asn1_write_octet_string:"AABBCC":"0403AABBCC":10:5
|
|
|
|
ASN.1 Write Octet String #2 (Buffer just fits)
|
|
mbedtls_asn1_write_octet_string:"AABBCC":"0403AABBCC":5:5
|
|
|
|
ASN.1 Write Octet String #3 (Buffer too small for tag)
|
|
mbedtls_asn1_write_octet_string:"AABBCC":"0403AABBCC":4:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
|
|
|
ASN.1 Write Octet String #4 (Buffer too small for len)
|
|
mbedtls_asn1_write_octet_string:"AABBCC":"0403AABBCC":3:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
|
|
|
ASN.1 Write Octet String #5 (Buffer too small for string)
|
|
mbedtls_asn1_write_octet_string:"AABBCC":"0403AABBCC":2:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
|
|
|
ASN.1 Write Octet String #6 (l = 128, large buffer)
|
|
mbedtls_asn1_write_octet_string:"000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":"048180000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":140:131
|
|
|
|
ASN.1 Write Octet String #7 (l = 128, buffer just fits)
|
|
mbedtls_asn1_write_octet_string:"000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":"048180000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":131:131
|
|
|
|
ASN.1 Write Octet String #8 (l = 128, buffer too small for tag)
|
|
mbedtls_asn1_write_octet_string:"000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":"":130:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
|
|
|
ASN.1 Write Octet String #9 (l = 128, buffer too small for len)
|
|
mbedtls_asn1_write_octet_string:"000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":"":129:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
|
|
|
ASN.1 Write Octet String #9 (l = 128, buffer too small for string)
|
|
mbedtls_asn1_write_octet_string:"000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":"":127:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
|
|
|
ASN.1 Write IA5 String #0 (Empty string)
|
|
mbedtls_asn1_write_ia5_string:"":"1600":2:2
|
|
|
|
ASN.1 Write IA5 String #1 (Large buffer)
|
|
mbedtls_asn1_write_ia5_string:"ABC":"1603414243":10:5
|
|
|
|
ASN.1 Write IA5 String #2 (Buffer just fits)
|
|
mbedtls_asn1_write_ia5_string:"ABC":"1603414243":5:5
|
|
|
|
ASN.1 Write IA5 String #3 (Buffer too small for tag)
|
|
mbedtls_asn1_write_ia5_string:"ABC":"":4:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
|
|
|
ASN.1 Write IA5 String #4 (Buffer too small for len)
|
|
mbedtls_asn1_write_ia5_string:"ABC":"":3:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
|
|
|
ASN.1 Write IA5 String #5 (Buffer too small for string)
|
|
mbedtls_asn1_write_ia5_string:"ABC":"":2:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
|
|
|
ASN.1 Write / Read Length #0 (Len = 0, short form)
|
|
mbedtls_asn1_write_len:0:"00":1:1
|
|
|
|
ASN.1 Write / Read Length #1 (Len = 127, short form)
|
|
mbedtls_asn1_write_len:127:"7F":1:1
|
|
|
|
ASN.1 Write / Read Length #2 (Len = 127, buffer too small)
|
|
mbedtls_asn1_write_len:127:"7F":0:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
|
|
|
ASN.1 Write / Read Length #3 (Len = 128, long form)
|
|
mbedtls_asn1_write_len:128:"8180":2:2
|
|
|
|
ASN.1 Write / Read Length #4 (Len = 255, long form)
|
|
mbedtls_asn1_write_len:255:"81FF":2:2
|
|
|
|
ASN.1 Write / Read Length #5 (Len = 255, buffer too small)
|
|
mbedtls_asn1_write_len:255:"81FF":1:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
|
|
|
ASN.1 Write / Read Length #6 (Len = 258, byte order)
|
|
mbedtls_asn1_write_len:258:"820102":3:3
|
|
|
|
ASN.1 Write / Read Length #7 (Len = 65535, long form)
|
|
mbedtls_asn1_write_len:65535:"82FFFF":3:3
|
|
|
|
ASN.1 Write / Read Length #8 (Len = 65535, buffer too small)
|
|
mbedtls_asn1_write_len:65535:"82FFFF":2:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
|
|
|
ASN.1 Write / Read Length #9 (Len = 66051, byte order)
|
|
mbedtls_asn1_write_len:66051:"83010203":4:4
|
|
|
|
ASN.1 Write / Read Length #10 (Len = 16777215, long form)
|
|
mbedtls_asn1_write_len:16777215:"83FFFFFF":4:4
|
|
|
|
ASN.1 Write / Read Length #11 (Len = 16777215, buffer too small)
|
|
mbedtls_asn1_write_len:16777215:"83FFFFFF":3:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
|
|
|
ASN.1 Write / Read Length #12 (Len = 16909060, byte order)
|
|
mbedtls_asn1_write_len:16909060:"8401020304":5:5
|
|
|
|
ASN.1 Write / Read Length #12 (Len = 16909060, buffer too small)
|
|
mbedtls_asn1_write_len:16909060:"8401020304":4:MBEDTLS_ERR_ASN1_BUF_TOO_SMALL
|
|
|
|
ASN.1 Write Named Bitstring / Unused bits #0
|
|
test_asn1_write_bitstrings:"FF":8:"030200FF":4:1
|
|
|
|
ASN.1 Write Named Bitstring / Unused bits #1
|
|
test_asn1_write_bitstrings:"FE":8:"030201FE":4:1
|
|
|
|
ASN.1 Write Named Bitstring / Unused bits #2
|
|
test_asn1_write_bitstrings:"FC":7:"030202FC":4:1
|
|
|
|
ASN.1 Write Named Bitstring / Unused bits #3
|
|
test_asn1_write_bitstrings:"F8":8:"030203F8":4:1
|
|
|
|
ASN.1 Write Named Bitstring / Unused bits #4
|
|
test_asn1_write_bitstrings:"F0":6:"030204F0":4:1
|
|
|
|
ASN.1 Write Named Bitstring / Unused bits #5
|
|
test_asn1_write_bitstrings:"E0":6:"030205E0":4:1
|
|
|
|
ASN.1 Write Named Bitstring / Unused bits #6
|
|
test_asn1_write_bitstrings:"C0":8:"030206C0":4:1
|
|
|
|
ASN.1 Write Named Bitstring / Unused bits #7
|
|
test_asn1_write_bitstrings:"80":8:"03020780":4:1
|
|
|
|
ASN.1 Write Named Bitstring / Empty bitstring
|
|
test_asn1_write_bitstrings:"00":7:"030100":3:1
|
|
|
|
ASN.1 Write Named Bitstring / Empty bitstring (bits = 16)
|
|
test_asn1_write_bitstrings:"0000":16:"030100":3:1
|
|
|
|
ASN.1 Write Named Bitstring / Empty bitstring (bits = 24)
|
|
test_asn1_write_bitstrings:"FFFFFF":0:"030100":3:1
|
|
|
|
ASN.1 Write Named Bitstring / 15 trailing bits all unset
|
|
test_asn1_write_bitstrings:"F88000":24:"030307F880":5:1
|
|
|
|
ASN.1 Write Named Bitstring / 15 trailing bits all set
|
|
test_asn1_write_bitstrings:"F8FFFF":9:"030307F880":5:1
|
|
|
|
ASN.1 Write Bitstring / Unused bits #0
|
|
test_asn1_write_bitstrings:"FF":8:"030200FF":4:0
|
|
|
|
ASN.1 Write Bitstring / Unused bits #1
|
|
test_asn1_write_bitstrings:"FF":7:"030201FE":4:0
|
|
|
|
ASN.1 Write Bitstring / Unused bits #2
|
|
test_asn1_write_bitstrings:"FF":6:"030202FC":4:0
|
|
|
|
ASN.1 Write Bitstring / Unused bits #3
|
|
test_asn1_write_bitstrings:"FF":5:"030203F8":4:0
|
|
|
|
ASN.1 Write Bitstring / Unused bits #4
|
|
test_asn1_write_bitstrings:"FF":4:"030204F0":4:0
|
|
|
|
ASN.1 Write Bitstring / Unused bits #5
|
|
test_asn1_write_bitstrings:"FF":3:"030205E0":4:0
|
|
|
|
ASN.1 Write Bitstring / Unused bits #6
|
|
test_asn1_write_bitstrings:"FF":2:"030206C0":4:0
|
|
|
|
ASN.1 Write Bitstring / Unused bits #7
|
|
test_asn1_write_bitstrings:"FF":1:"03020780":4:0
|
|
|
|
ASN.1 Write Bitstring / 1 trailing bit (bits 15)
|
|
test_asn1_write_bitstrings:"0003":15:"0303010002":5:0
|
|
|
|
ASN.1 Write Bitstring / 0 bits
|
|
test_asn1_write_bitstrings:"":0:"030100":3:0
|
|
|
|
ASN.1 Write Bitstring / long string all bits unset except trailing bits
|
|
test_asn1_write_bitstrings:"000000000007":45:"030703000000000000":9:0
|