[openssl-users] ASN.1: Parsing a 'private' class

Massimiliano Pala director at openca.org
Mon Aug 31 23:10:41 UTC 2015


Hi all,

I actually figured it out, if anybody is curious about the solution for 
parsing this CRYPTLIB signature envelope (in this case DSA) - write to 
me directly, I will be happy to share the solution.

Cheers,
Max

On 8/29/15 6:56 PM, Massimiliano Pala wrote:
> Hi all,
>
> I am trying to parse a sequence that has, after an integer, a 
> 'private' (xclass) item. I was wondering what is the right templates / 
> macros to be able to generate the ASN1 functions with the usual macro. 
> An example of the structure I have to parse (B64 - DER), is the 
> following:
>
> MGICAQOAFGZKq8/wIYS7Iueq6NuaC3ESPqUKMAkGBSsOAwIaBQAwCwYHKoZIzjgEAQUABC8wLQIVAJTJ6W2QjBIbVQdAtLbPO3y1wazHAhRsXivNO/Eg4GMEgcmEx8OgsIxGzQ== 
>
>
> [ you can paste it into http://www.lapo.it/asn1js/ to get useful info. ]
>
> The field that is giving me issues is the 2nd field in the sequence - 
> offest 5, length 20 (i.e., after SEQUENCE (2 bytes) + INTEGER (3 
> bytes) and then the 20bytes field that I want to parse). The type is 
> 0x80 - context specific. By using the ASN1_get_object() function, I 
> get the correct size (20), the tag (0), and the xclass (128). Now, how 
> do I go in order to generate the useful ASN1 function with teh usual 
> macros ? Here's an example (besides the second field) for what I am 
> trying to do:
>
> ASN1_SEQUENCE(TYPE) = {
>
>     ASN1_SIMPLE(TYPE, field1, ASN1_INTEGER),
>
>     XXXXXXX(TYPE, field2, YYYYY),                      <<-- What shall 
> be used here ? What Macro ?
>
>     ASN1_SEQUENCE_OF(TYPE, field3, ASN1_OBJECT),
>
>     ASN1_SEQUENCE_OF(TYPE, field3, ASN1_OBJECT),
>
>     ASN1_SIMPLE(TYPE, field3, ASN1_OCTET_STRING)       <<-- This might 
> be wrong as well - just noticed it is a very
>
> } ASN1_SEQUENCE_END(TYPE)                                    weird 
> encoding (octet-string that encapsulates a sequence of integers)
>
>
> Is there a way to have the macros do the work (e.g., shall I use other 
> macros - template? - to define the field somehow) ? Or shall I just 
> write my own d2i_ and i2d_ functions ?
>
> Please let me know,
>
> Cheers,
> Max
>
> _______________________________________________
> openssl-users mailing list
> To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users



More information about the openssl-users mailing list