# HG changeset patch # User William Ehlhardt # Date 1186124922 0 # Node ID fcb3e4a2aa9a5bde61082293cef631f8c00c4570 # Parent 9ac0fbb569a5961c8afe2320838e9c76e50a4f7d - x509_nss copy op diff -r 9ac0fbb569a5 -r fcb3e4a2aa9a libpurple/plugins/ssl/ssl-nss.c --- a/libpurple/plugins/ssl/ssl-nss.c Fri Aug 03 07:02:10 2007 +0000 +++ b/libpurple/plugins/ssl/ssl-nss.c Fri Aug 03 07:08:42 2007 +0000 @@ -415,7 +415,21 @@ static PurpleCertificate * x509_copy_certificate(PurpleCertificate *crt) { - return NULL; + CERTCertificate *crt_dat; + PurpleCertificate *newcrt; + + g_return_val_if_fail(crt, NULL); + g_return_val_if_fail(crt->scheme == &x509_nss, NULL); + + crt_dat = X509_NSS_DATA(crt); + g_return_val_if_fail(crt_dat, NULL); + + /* Create the certificate copy */ + newcrt = g_new0(PurpleCertificate, 1); + newcrt->scheme = &x509_nss; + newcrt->data = CERT_DupCertificate(crt_dat); + + return newcrt; } /** Frees a Certificate