Awesome, Borislav
Been messing about with this for so long, got a bit stir crazy, I forgot to set my fields to binary.
Last question, if I wanted to use a character field (binary of course), would this still work? Not a big fan of memo fields to be honest, they tend to go wronfg often & and seem to suffer bloat
>That workd for me:
>
>CLEAR
>CREATE CURSOR crsTest (Name M NOCPTRANS, nAME2 M nocptrans)
>oCrypto = Newobject("_cryptapi", HOME()+[FFC\_crypt.vcx])
>#DEFINE NOCSP_Lines_of_code "The required Crypto Service Provider is not installed or not functioning properly on this system."
>
>IF !OCrypto.GetIsInstalled()
> MESSAGEBOX(NOCSP_Lines_of_code)
> RETURN .F.
>ENDIF
>
>LOCAL lcEncryptedStream,lcPassword,lcKey
>lcEncryptedStream = ''
>lcDecryptedStream = ''
>
>lcPassWord = "Christine"
>lcKey = "Secret Password"
>IF ocrypto.EncryptSessionStreamString(lcPassWord, lcKey, @lcEncryptedStream)
>
>ELSE
> IF ocrypto._cryptapi.GetDoubleEncryptError()
> MESSAGEBOX("Sorry, you cannot double-encrypt this text.")
> ELSE
> MESSAGEBOX("Error: "+MESSAGE())
> ENDIF
> RETURN
>ENDIF
>
>?lcEncryptedStream
>APPEND BLANK
>REPLACE name WITH STRCONV(lcEncryptedStream,15), nAME2 WITH lcPassWord
>lcfield=STRCONV(name,16)
>? lcfield
>? lcfield == lcEncryptedStream
>lcDecryptedStream = SPACE(200)
>mresult=ocrypto.DecryptSessionStreamString(lcfield, lcKey, @lcDecryptedStream)
>?lcDecryptedStream
>brow
>
>
>BTW you used EncryptSessionBlockString but
DecryptSessionStreamString not
DecryptSessionBlockString
Rob