aboutsummaryrefslogtreecommitdiff
path: root/lib/nss.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/nss.c')
-rw-r--r--lib/nss.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/lib/nss.c b/lib/nss.c
index d60b18479..cb742c1b0 100644
--- a/lib/nss.c
+++ b/lib/nss.c
@@ -1533,4 +1533,24 @@ int Curl_nss_seed(struct SessionHandle *data)
return 0;
}
+void Curl_nss_random(struct SessionHandle *data,
+ unsigned char *entropy,
+ size_t length)
+{
+ Curl_nss_seed(data); /* Initiate the seed if not already done */
+ PK11_GenerateRandom(entropy, length);
+}
+
+void Curl_nss_md5sum(unsigned char *tmp, /* input */
+ size_t tmplen,
+ unsigned char *md5sum, /* output */
+ size_t md5len)
+{
+ PK11Context *MD5pw = PK11_CreateDigestContext(SEC_OID_MD5);
+ unsigned int MD5out;
+ PK11_DigestOp(MD5pw, tmp, tmplen);
+ PK11_DigestFinal(MD5pw, md5sum, &MD5out, md5len);
+ PK11_DestroyContext(MD5pw, PR_TRUE);
+}
+
#endif /* USE_NSS */