NSS_IMPLEMENT NSSCertificate * nssCertificate_Create ( nssPKIObject *object
NSS_IMPLEMENT NSSDER * nssCRL_GetEncoding ( NSSCRL *crl
NSS_IMPLEMENT NSSCertificate *nssCertificate_Create (  nssPKIObject *object){    PRStatus status;    NSSCertificate *rvCert;    /* mark? */    NSSArena *arena = object->arena;    PR_ASSERT(object->instances != NULL && object->numInstances > 0);    rvCert = nss_ZNEW(arena, NSSCertificate);    if (!rvCert) {	return (NSSCertificate *)NULL;    }    rvCert->object = *object;    /* XXX should choose instance based on some criteria */    status = nssCryptokiCertificate_GetAttributes(object->instances[0],                                                  NULL,  /* XXX sessionOpt */                                                  arena,                                                  &rvCert->type,                                                  &rvCert->id,                                                  &rvCert->encoding,                                                  &rvCert->issuer,                                                  &rvCert->serial,                                                  &rvCert->subject);    if (status != PR_SUCCESS) {	return (NSSCertificate *)NULL;    }    /* all certs need an encoding value */    if (rvCert->encoding.data == NULL) {	return (NSSCertificate *)NULL;    }    return rvCert;}