經與C.一些問題,我有,這是我的代碼:瞭解NSS PK11_CipherOp和C內存分配
// First line works, second line does not!
char outbuf[1024];
// char *outbuf = (char *) malloc(1024); // char is always 1
我傳遞這outbuf中一個叫PK11_CipherOp()
方法,在NSS庫中聲明。這個方法的文檔可以找到here,你可以看到它預計outbuf參數爲char *
。
我不明白爲什麼第一行可靠工作,第二行不行!
要查看完整的代碼,請參閱File Source
感謝,
漢密爾頓
caf, 感謝您的幫助。不幸的是,這並沒有解決問題。我有警告(並沒有得到關於聲明malloc的一個),但我實現你的解決方案只是爲了確保。 您可以在http://code.google.com/p/sysecure/source/browse/trunk/session_keys.c上看到更新的源代碼。R = 27#119 當運行時,該打印: sysecure:嘗試加密消息 sysecure當錯誤:錯誤執行密碼操作(ERR -8189) sysecure:錯誤名稱 - ((空)) sysecure:錯誤消息 - (未知代碼___f 3) 和標準錯誤 加密數據: 數據長度0 任何想法真的會幫助我。 – Hamy 2009-12-04 19:43:48
是的,還有第二個問題 - 請參閱我的更新答案。 – caf 2009-12-05 01:14:13