diff options
author | Stef Walter <stef@memberwebs.com> | 2007-05-06 02:02:09 +0000 |
---|---|---|
committer | Stef Walter <stef@memberwebs.com> | 2007-05-06 02:02:09 +0000 |
commit | 16be360038c56328695f1dd8133718f82cd0c36c (patch) | |
tree | 9428cd853b4561b4590d4102ee81bd57261826b9 /ckcapi.c | |
parent | 856a057fc0a0807e9c0dd2b11c04e1f1312bdb12 (diff) |
A bunch of trust work on the plugin.
Diffstat (limited to 'ckcapi.c')
-rw-r--r-- | ckcapi.c | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -112,6 +112,34 @@ ckcapi_winerr_to_ckr(DWORD werr) } +CK_RV +ckcapi_return_data(CK_VOID_PTR dst, CK_ULONG_PTR dlen, + CK_VOID_PTR src, DWORD slen) +{ + // TODO: This check should probably go elsewhere + if(slen == 0) + return CKR_ATTRIBUTE_TYPE_INVALID; + + /* Just asking for the length */ + if(!dst) + { + *dlen = slen; + return CKR_OK; + } + + /* Buffer is too short */ + if(slen > *dlen) + { + *dlen = slen; + return CKR_BUFFER_TOO_SMALL; + } + + *dlen = slen; + memcpy(dst, src, slen); + return CKR_OK; +} + + /* ---------------------------------------------------------------- */ static CK_RV |