On 18-08-2010 19:41, Alessandro Menti wrote:
Thanks for your help, Jacob.
Where can I find your signing tools? A quick Google search
revealed no useful links.
Sorry, closed source in-house code only, tied heavily into other
closed source code, anyway it was a client, not a server.
Alternatively, can you suggest me how to complete the original
ASN.1 structures so as to add the explicit [0] tag? I have already
searched the official OpenSSL documentation for some clues, but I
have found nothing of interest (moreover, this is the first time
I use the OpenSSL library in one of my projects).
Sorry, I don't know how to specify ASN.1 structures in OpenSSL,
my own code contained its own mini-DER encoder limited to just
the needed structures, and didn't use OpenSSL either at the time.
Anyway, I am not sure if your notation is the old deprecated one
or the new one (OpenSSL transitioned from one way of doing ASN.1
to another some time ago, and there was a FAQ entry about not
using ASN1_SOME_EVIL_MACRO).
Thanks in advance,
Alessandro Menti
----- Original structures -----
typedef struct {
ASN1_OBJECT *type;
ASN1_OCTET_STRING *data;
} TimeStampContentInfo;
typedef struct {
ASN1_OBJECT *countersignatureType;
TimeStampContentInfo *content;
} TimeStampRequest;
ASN1_SEQUENCE(TimeStampContentInfo) = {
ASN1_SIMPLE(TimeStampContentInfo, type, ASN1_OBJECT),
ASN1_EXP_OPT(TimeStampContentInfo, data, ASN1_OCTET_STRING, 0)
} ASN1_SEQUENCE_END(TimeStampContentInfo)
DECLARE_ASN1_FUNCTIONS(TimeStampRequest)
ASN1_SEQUENCE(TimeStampRequest) = {
ASN1_SIMPLE(TimeStampRequest, countersignatureType, ASN1_OBJECT),
ASN1_SIMPLE(TimeStampRequest, content, TimeStampContentInfo)
} ASN1_SEQUENCE_END(TimeStampRequest)
IMPLEMENT_ASN1_FUNCTIONS(TimeStampRequest)
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [email protected]
Automated List Manager [email protected]