Cipher (gb.openssl)

This class wraps the cipher (block and stream) algorithms of OpenSSL. See Wikipedia: Ciphers for a start on ciphers.

Deze klasse is statisch.

Deze klasse reageert als alleen leesbaar statische reeks.

Statische eigenschappen
List  

Statische methode
IsSupported   Checks if the cipher method Method is supported by the OpenSSL library installed on the system.

En- and decryption is done using the Cipher class. First, you have to settle on a cipher, say AES256 in CBC mode. You can get a list of ciphers that your local openssl supports from Cipher.List. You'll see that "AES-256-CBC" is a supported method (I suppose virtually everywhere). You use this string as an index into the Cipher class to get a .Cipher.Method object which can do en- and decryption, see . For example:

Use "gb.openssl"  'For Gambas Script Only

Public Sub Main()
  Dim sCipher, sData As String

  sCipher = Cipher["AES-256-CBC"].EncryptSalted("Hello there", "secret")
  Print "Cipher text (base64):";; Base64$(sCipher)
  sData = Cipher["AES-256-CBC"].DecryptSalted(sCipher, "secret")
  Print "Decrypted:";; sData

  Try Cipher["AES-256-CBC"].DecryptSalted(sCipher, "wrong")
  If Error Then Print "ERROR:";; Error.Text
End
Cipher text (base64): U2FsdGVkX1+j36HLTJVWjG2ciDw2ZOk/dhbdB7aiTOg=
Decrypted: Hello there
ERROR: Decryption failed