Hi, I am having problems with GENERAL_NAMES in the following sequence: :
---------------------------------------------------------------------
DEFINITIONS IMPLICIT TAGS
Seq1 ::= SEQUENCE
{
field1 INTEGER,
field2 Seq2
}
Seq2 ::= SEQUENCE
{
sub_field1 [0] Sub_seq_000 OPTIONAL,
sub_field2 [1] GENERAL_NAMES OPTIONAL,
sub_field3 [2] Sub_seq_200 OPTIONAL
}
---------------------------------------------------------------------
Implemented by:
ASN1_SEQUENCE(Seq2) = {
ASN1_IMP_OPT(Seq2, Sub_field1, Sub_seq_000,0),
ASN1_IMP_OPT(Seq2, Sub_field2, GENERAL_NAMES,1),
ASN1_IMP_OPT(Seq2, Sub_field3, Sub_seq_200,2),
} ASN1_SEQUENCE_END(Seq2)
IMPLEMENT_ASN1_FUNCTIONS(Seq2)
ASN1_SEQUENCE(Seq1) = {
ASN1_SIMPLE(Seq1, field1,INTEGER),
ASN1_SIMPLE(Seq1, field2, Seq2)
} ASN1_SEQUENCE_END(Seq1)
IMPLEMENT_ASN1_FUNCTIONS(Seq1)
Note: GENERAL_NAMES is defined at "crypto/x509v3/x509_v3.h" and
"crypto/x509v3/v3_genn.c"
The problem is when I call to "i2d_Seq1" with an example code, the DER
output is:
(output from "ASN.1 Dump Utility")
SEQUENCE
{
INTEGER 1
SEQUENCE
{
[0] {
SEQUENCE
{
.......
}
}
===> {
[2] 'DNS_GENERALNAMES'
}
[2] {
SEQUENCE
{
.......
}
}
}
(Attention to the arrow )
instead of:
SEQUENCE
{
INTEGER 1
SEQUENCE
{
[0] {
SEQUENCE
{
.......
}
}
==> [1]{
[2] 'DNS_GENERALNAMES'
}
[2] {
SEQUENCE
{
.......
}
}
}
The point is, I can't obtain [1] tag in GENERAL_NAMES. I have tried to put
GENERAL_NAMES in other situations (always in IMPLICIT mode) and it never
puts tags. En cambio, I have tried in EXPLICIT mode and it works fine, but I
need IMPLICIT tags.
How can I obtain this IMPLICIT tag in DER output?
Thanks in advance.
Fernando Moya Bernal.
University of Malaga. Spain.
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]