ASN.1 - Abstract Syntax Notation One
Intro
Â
My notes on ASN.1
From Wikipedia: Abstract Syntax Notation One (ASN.1) is a standard interface description language for defining data structures that can be serialized and deserialized in a cross-platform way. It is broadly used in telecommunications and computer networking, and especially in cryptography.
Â
SSH keys are an ASN.1 encoded data structure.
Decoders
Â
ASN.1 JavaScript decoder: https://lapo.it/asn1js
Â
Â
You can also use OpenSSL’s ASN.1 parsing tool: openssl asn1parse
Input is the key file generated with ssh-keygen. It is a PEM (Base64-encoded file)
$ openssl asn1parse -inform PEM -in /c/temp/sshkey.private
0:d=0 hl=4 l=1188 cons: SEQUENCE
4:d=1 hl=2 l= 1 prim: INTEGER :00
7:d=1 hl=4 l= 257 prim: INTEGER :C6490E13CDD6D9C393EC85A115CF5A3DA6909900DD833B970AFFA9A591DAFBE6EE4A437E820D2D72BEC5C3C34B19AE7E53379CDAB120D1699E7AF075DC0228629D0C672113AB8EADFA393DA6E37067022DF5780166E7C6B5913059B156C3FBD52CDC0E5C17B85164AD1915B380FA44792BF94DBD558CB64805D1A985320ADB6026CFA65B4E132C88C9F225A7C4C09FD3F0F40EDE6C92F75BD41C4BA838C033A14203E24374304677F976A1C8AD07255ABAF0AB1539B79F5C6D6FBC0DC6009DBD93125AAAF45F8189EA66BC9637BC370878CD53873FD89929FA7F0BD129F168D03E59803B8E23F24C5D22B3CBB3325610E25D4BCE1FFCFCCA6F842405F2BDB677
268:d=1 hl=2 l= 3 prim: INTEGER :010001
273:d=1 hl=4 l= 257 prim: INTEGER :BA75606387210ECE37802778FF45699AA7D339CDF27FC1BD9B7E274DA706C1F2BB09E2C6480D943B5EE221E0B7F2828010492F9B070DD15EFCC4A6F26DDD2994F21203B8BB028CBD559C1639A58EC18EEF20F1A47FDC5CA3C8D02AC7F4CB7F394B61F3AEEE2F497ADEBBC40874B4E346FEEF050792372C0236569E8EBE2C2F756782E273B10AD865769B8F28D2C0F2B98C315453290FBB4F65529D79B061C90A51C520CE8552A62359692D33503CA9769CB6FAD447DCC41AE64A8DD582A3BC5F110B8EF0A0E60292DB03A37145A4634579CF5369ADCCB32F837D04211CA6452882F76C90CE36D9AB56FB582B8D3FC9E538699FC70360D0CF085EA25D407E2121
534:d=1 hl=3 l= 129 prim: INTEGER :E9D58E8B01926EEC6E52BE9F8204C0FC6CF2C3A684F9D30D4CB9586AE9482AD73A6B1520151F95A2F76462F1DF1088C2D0A712E701F43BCDD87664BA973F87A85329460BA97BB22C3F278D3ADB4612E06C2F50ACAAD23351767D24F156A3ED6439433308CD474E311C0FDF2A1F1B5D7C9332A3873494C71CD85B87731C754463
666:d=1 hl=3 l= 129 prim: INTEGER :D914D61A9F9F0EFE6979DC27D6E3CACAF56566EA384E4D77C00581FC1A2AE1934D55F636C5109C231674EA7EC056A4E342473CA5A424D7411BE7B1D07F49350B132B75F93C13004BC01F5F41AB29EBB029603A7ABCAD553AA339F2D871DA79FB3F6CF03B550B10EE56C33E8B85FC52A2063A5BC66ED2845689073C55CFD6AFDD
798:d=1 hl=3 l= 128 prim: INTEGER :707839617ED611E842802613CE93BEC72B17F1270CDAA4BAC6E67732A516031516921ECD199BE17B4B06CBD88E740373C0AC3B994505562682311FEDE785B5182F37B0EB370FB9F9323F31DCD74EF31162B7B753F5ADB8E53BDAA1843B2A09AAA5283F49C282C387377A22DABDAF89DDBB6725E48853EF195EAF578CF4692B05
929:d=1 hl=3 l= 128 prim: INTEGER :3BCFA2E23902B135E5C7DEA1D77271E893CE7999A523E5F24DA4F6D888393267CC9217C1A5705B24CBC630E9F582A9F1B7CC3AE8849E65F49984B0187B49A764C2C661BDE710712F6DE2F6F2F7FF17E234B43FC89B7DC292E2704FF9D4FCD6492483967932885704E440ED55B1F800A885C0C4929AEC43EC37DB1783A93D44BD
1060:d=1 hl=3 l= 129 prim: INTEGER :CA9BCC2CD81CAF49456CF468D38A509A8C5A8B27479563344F698E9FFBE1AFFD455F00F57873E4B49005A95DBBF9B5B924CDB4B479A2CF4CA80BCDABD7B50A13B4AC2B8E9A251CA207533E96BBE9F869B7C021116E6CE74DFFE68BA11434C810D16DD5CCB1937F8EF638E1E33EC512DD455C8C99D3ED3FC6DE9518B6136684CC
Â