Difference between revisions of "Cryptography"
From GiderosMobile
|  (removed language stuff) | |||
| Line 6: | Line 6: | ||
| === Description === | === Description === | ||
| Cryptographic primitives. | Cryptographic primitives. | ||
| + | |||
| + | === Example === | ||
| + | <source lang="lua"> | ||
| + | local key = "GiderosGideros11" | ||
| + | local iv = "GiderosRules2023" | ||
| + | local paddingType = 1 | ||
| + | |||
| + | |||
| + | local function cryptCopy(src, dst) | ||
| + | 	local srcf = io.open(src, "rb") | ||
| + | 	local dstf = io.open(dst, "wb") | ||
| + | 	local size = 2^13 -- good buffer size (8K) | ||
| + | 	while true do | ||
| + | 		local block = srcf:read(size) | ||
| + | 		if not block then break end | ||
| + | 		block = Cryptography.aesEncrypt(block,key,iv,paddingType) | ||
| + | 		dstf:write(block) | ||
| + | 	end | ||
| + | 	srcf:close() | ||
| + | 	dstf:close() | ||
| + | end | ||
| + | |||
| + | local function decryptCopy(src, dst) | ||
| + | 	local srcf = io.open(src, "rb") | ||
| + | 	local dstf = io.open(dst, "wb") | ||
| + | 	local size = 2^13 + 16 -- good buffer size (8K + 16 for padding) | ||
| + | 	while true do | ||
| + | 		local block = srcf:read(size) | ||
| + | 		if not block then break end | ||
| + | 		block = Cryptography.aesDecrypt(block,key,iv,paddingType) | ||
| + | 		dstf:write(block) | ||
| + | 	end | ||
| + | 	srcf:close() | ||
| + | 	dstf:close() | ||
| + | end | ||
| + | |||
| + | cryptCopy ("|D|myfile.sqlite", "C:/tmp/myfile.crypt") | ||
| + | decryptCopy ("C:/tmp/myfile.crypt", "C:/tmp/myfile.sqlite") | ||
| + | </source> | ||
| {|- | {|- | ||
Revision as of 18:54, 28 February 2023
Supported platforms: 






Available since: Gideros 2016.04
Description
Cryptographic primitives.
Example
local key = "GiderosGideros11"
local iv = "GiderosRules2023"
local paddingType = 1
local function cryptCopy(src, dst)
	local srcf = io.open(src, "rb")
	local dstf = io.open(dst, "wb")
	local size = 2^13 -- good buffer size (8K)
	while true do
		local block = srcf:read(size)
		if not block then break end
		block = Cryptography.aesEncrypt(block,key,iv,paddingType)
		dstf:write(block)
	end
	srcf:close()
	dstf:close()
end
local function decryptCopy(src, dst)
	local srcf = io.open(src, "rb")
	local dstf = io.open(dst, "wb")
	local size = 2^13 + 16 -- good buffer size (8K + 16 for padding)
	while true do
		local block = srcf:read(size)
		if not block then break end
		block = Cryptography.aesDecrypt(block,key,iv,paddingType)
		dstf:write(block)
	end
	srcf:close()
	dstf:close()
end
cryptCopy ("|D|myfile.sqlite", "C:/tmp/myfile.crypt")
decryptCopy ("C:/tmp/myfile.crypt", "C:/tmp/myfile.sqlite")
| MethodsCryptography.aesDecrypt decrypts an AES string | EventsConstants | 
