|
|
|
Crypto API в Visual FoxPro
|
|||
|---|---|---|---|
|
#18+
День добрый!!! Для шифрования паролей решил воспользоваться crypto API функциями. написал следующее: #include "wincrypt.h" LOCAL a,b,lhHasHandle,Prov DECLARE LONG CryptAcquireContext IN Win32API Long @phProv, Long pszContainer, ; Long pszProvider, Long dwProvType, Long dwFlags DECLARE LONG CryptCreateHash IN Win32API Long hProv, Long Algid, ; Long hKey, Long dwFlags, Long @phHash DECLARE LONG CryptHashData IN Win32API Long hHash, String pbData, ; Long dwDataLen, Long dwFlags DECLARE LONG CryptSignHash IN Win32API Long hHash, Long dwKeySpec, ; string sDescription, Long dwFlags, String @pbSignature, Long @pdwSigLen DECLARE INTEGER GetLastError IN Win32API lhHasHandle = 0 CryptAcquireContext(@Prov,0,0,dnPROV_RSA_FULL,0) CryptCreateHash(Prov,dnCALG_MD5,0,0,@lhHasHandle) CryptHashData(lhHasHandle,this.Value,LEN(this.Value),0) a=0 CryptSignHash(lhHasHandle,dnAT_SIGNATURE,null,0,0,@a) b=GetLastError() CryptSignHash не проходит. Говорит NTE_BAD_KEYSET!!! Всю голову уже сломал!!! Подскажите что не так кто знает. Заранее спасибо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2007, 18:15 |
|
||
|
Crypto API в Visual FoxPro
|
|||
|---|---|---|---|
|
#18+
Посмотри C:\Program Files\Microsoft Visual FoxPro 9\Ffc\_crypt.vcx возможно ответ там кроется www.frx2any.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2007, 22:31 |
|
||
|
Crypto API в Visual FoxPro
|
|||
|---|---|---|---|
|
#18+
Marat CПосмотри C:\Program Files\Microsoft Visual FoxPro 9\Ffc\_crypt.vcx возможно ответ там кроется www.frx2any.com Смотрел уже... и не раз... вот например в signfile написанно вот так: CryptSignHash(lhHashHandle, dnAT_SIGNATURE, 0), вот ее описание: function CryptSignHash(hHash :HCRYPTHASH; dwKeySpec :DWORD; sDescription :LPAWSTR; dwFlags :DWORD; pbSignature :PBYTE; pdwSigLen :PDWORD) :BOOL; stdcall; ... pbSignature указывает на буфер, куда будет помещена цифровая подпись, а pdwSigLen - размер этого буфера. Если размер заранее не известен, то можно указать pbSignature равным nil, и тогда в параметре pdwSigLen мы получим необходимый размер буфера. А что будет если ее вызвать вот так: CryptSignHash(lhHashHandle, dnAT_SIGNATURE, 0) мне не очень понятно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2007, 11:27 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34338795&tid=1589865]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 353ms |

| 0 / 0 |
