Ok thanks. Lets step back. The change I made was:
SEC_ASN1_MKSUB(SECOID_AlgorithmIDTemplate)
static SEC_ASN1Template template[] = {
{ SEC_ASN1_SEQUENCE, 0, NULL, sizeof (SDRResult) },
{ SEC_ASN1_OCTET_STRING, offsetof(SDRResult, keyid) },
{ SEC_ASN1_INLINE | SEC_ASN1_XTRN, offsetof(SDRResult, alg),
SEC_ASN1_SUB(SECOID_AlgorithmIDTemplate) },
{ SEC_ASN1_OCTET_STRING, offsetof(SDRResult, data) },
{ 0 }
};
It used to be:
static SEC_ASN1Template template[] = {
{ SEC_ASN1_SEQUENCE, 0, NULL, sizeof (SDRResult) },
{ SEC_ASN1_OCTET_STRING, offsetof(SDRResult, keyid) },
{ SEC_ASN1_INLINE, offsetof(SDRResult, alg),
NSS_Get_SECOID_AlgorithmIDTemplate },
{ SEC_ASN1_OCTET_STRING, offsetof(SDRResult, data) },
{ 0 }
};
Does the change look OK?
Also what exactly does the error mean, "Exception Breakpoint error:
breakpoint has been reached (0x800000003)" ? What is this breakpoint?
-- P
"Nelson B. Bolyard" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> Patrick wrote:
> >
> > Update on this:
> >
> > the change you propose seems to work fine except that the problem seems
to
> > be with successive encoding/decoding operations. That is to say, I can
> > encode/decode *once*, but when I do another successive encode/decode in
same
> > program, I get the original error back
> > Is there a macro for "resetting the template"?
>
> Templates are constants, not changed by the decoding process.
> They do not contain state information. So there should be no problem
> with using the same template multiple times in succession, or even
> simultaneously by multiple threads.
>
> > Why didn't I see this problem in NSS3.1?
>
> I'd guess you were tesing only on Unix?