class-description NEWS COMMUNITY STORE TUTORIALS SIGN UP LOGIN LOGOUT ROKOJORI NEWSLETTER SIGN UP LOGIN LOGOUT NEWS COMMUNITY STORE TUTORIALS TOGGLE FULLSCREEN VOLLBILD AN/AUS ObjectRefCounted Crypto
Provides access to advanced cryptographic functionalities.

The Crypto class provides access to advanced cryptographic functionalities.

Currently, this includes asymmetric key encryption/decryption, signing/verification, and generating cryptographically secure random bytes, RSA keys, HMAC digests, and self-signed X509Certificates.

var crypto = Crypto.new() # Generate new RSA key. var key = crypto.generate_rsa(4096) # Generate new self-signed certificate with the given key. var cert = crypto.generate_self_signed_certificate(key, "CN=mydomain.com,O=My Game Company,C=IT") # Save key and certificate in the user folder. key.save("user://generated.key") cert.save("user://generated.crt") # Encryption var data = "Some data" var encrypted = crypto.encrypt(key, data.to_utf8_buffer()) # Decryption var decrypted = crypto.decrypt(key, encrypted) # Signing var signature = crypto.sign(HashingContext.HASH_SHA256, data.sha256_buffer(), key) # Verifying var verified = crypto.verify(HashingContext.HASH_SHA256, data.sha256_buffer(), signature, key) # Checks assert(verified) assert(data.to_utf8_buffer() == decrypted)
bool constant_time_compare<>( PackedByteArray trusted=, trusted:PackedByteArray=, PackedByteArray received=, received:PackedByteArray=, ):bool

Compares two PackedByteArrays for equality without leaking timing information in order to prevent timing attacks.

See this blog post for more information.

PackedByteArray decrypt<>( CryptoKey key=, key:CryptoKey=, PackedByteArray ciphertext=, ciphertext:PackedByteArray=, ):PackedByteArray

Decrypt the given ciphertext with the provided private key.

Note: The maximum size of accepted ciphertext is limited by the key size.

PackedByteArray encrypt<>( CryptoKey key=, key:CryptoKey=, PackedByteArray plaintext=, plaintext:PackedByteArray=, ):PackedByteArray

Encrypt the given plaintext with the provided public key.

Note: The maximum size of accepted plaintext is limited by the key size.

PackedByteArray generate_random_bytes<>( int size=, size:int=, ):PackedByteArray

Generates a PackedByteArray of cryptographically secure random bytes with given size.

CryptoKey generate_rsa<>( int size=, size:int=, ):CryptoKey

Generates an RSA CryptoKey that can be used for creating self-signed certificates and passed to StreamPeerTLS.accept_stream().

X509Certificate generate_self_signed_certificate<>( CryptoKey key=, key:CryptoKey=, String issuer_name="CN=myserver,O=myorganisation,C=IT", issuer_name:String="CN=myserver,O=myorganisation,C=IT", String not_before="20140101000000", not_before:String="20140101000000", String not_after="20340101000000", not_after:String="20340101000000", ):X509Certificate

Generates a self-signed X509Certificate from the given CryptoKey and issuer_name. The certificate validity will be defined by not_before and not_after (first valid date and last valid date). The issuer_name must contain at least "CN=" (common name, i.e. the domain name), "O=" (organization, i.e. your company name), "C=" (country, i.e. 2 lettered ISO-3166 code of the country the organization is based in).

A small example to generate an RSA key and an X509 self-signed certificate.

var crypto = Crypto.new() # Generate 4096 bits RSA key. var key = crypto.generate_rsa(4096) # Generate self-signed certificate using the given key. var cert = crypto.generate_self_signed_certificate(key, "CN=example.com,O=A Game Company,C=IT")
PackedByteArray hmac_digest<>( HashType hash_type=, hash_type:HashType=, PackedByteArray key=, key:PackedByteArray=, PackedByteArray msg=, msg:PackedByteArray=, ):PackedByteArray

Generates an HMAC digest of msg using key. The hash_type parameter is the hashing algorithm that is used for the inner and outer hashes.

Currently, only HashingContext.HASH_SHA256 and HashingContext.HASH_SHA1 are supported.

PackedByteArray sign<>( HashType hash_type=, hash_type:HashType=, PackedByteArray hash=, hash:PackedByteArray=, CryptoKey key=, key:CryptoKey=, ):PackedByteArray

Sign a given hash of type hash_type with the provided private key.

bool verify<>( HashType hash_type=, hash_type:HashType=, PackedByteArray hash=, hash:PackedByteArray=, PackedByteArray signature=, signature:PackedByteArray=, CryptoKey key=, key:CryptoKey=, ):bool

Verify that a given signature for hash of type hash_type against the provided public key.




All social media brands are registrated trademarks and belong to their respective owners.





CONTACT IMPRINT TERMS OF USE PRIVACY © ROKOROJI ® 2021 rokojori.com
CONTACT IMPRINT TERMS OF USE PRIVACY © ROKOROJI ® 2021 rokojori.com
We are using cookies on this site. Read more... Wir benutzen Cookies auf dieser Seite. Mehr lesen...