encutil.c (964B)
1 /* -*- Mode: C; tab-width: 8 -*- */ 2 /* This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 #include "secasn1.h" 7 #include "crmf.h" 8 #include "crmfi.h" 9 10 void 11 crmf_encoder_out(void *arg, const char *buf, unsigned long len, 12 int depth, SEC_ASN1EncodingPart data_kind) 13 { 14 struct crmfEncoderOutput *output; 15 16 output = (struct crmfEncoderOutput *)arg; 17 output->fn(output->outputArg, buf, len); 18 } 19 20 SECStatus 21 cmmf_user_encode(void *src, CRMFEncoderOutputCallback inCallback, void *inArg, 22 const SEC_ASN1Template *inTemplate) 23 { 24 struct crmfEncoderOutput output; 25 26 PORT_Assert(src != NULL); 27 if (src == NULL) { 28 return SECFailure; 29 } 30 output.fn = inCallback; 31 output.outputArg = inArg; 32 return SEC_ASN1Encode(src, inTemplate, crmf_encoder_out, &output); 33 }