From e119e48d4daa356063bff9f98f8329411107bbaa Mon Sep 17 00:00:00 2001 From: Carsten Date: Thu, 9 May 2024 14:36:28 +0200 Subject: [PATCH] [Doc] Update Crypto example - Removed redundant new() initializations - removed _ready and node - improved readability --- doc/classes/Crypto.xml | 109 +++++++++++++++++++++-------------------- 1 file changed, 55 insertions(+), 54 deletions(-) diff --git a/doc/classes/Crypto.xml b/doc/classes/Crypto.xml index 65abc4c641a5..0effd54fb9a8 100644 --- a/doc/classes/Crypto.xml +++ b/doc/classes/Crypto.xml @@ -8,66 +8,67 @@ Currently, this includes asymmetric key encryption/decryption, signing/verification, and generating cryptographically secure random bytes, RSA keys, HMAC digests, and self-signed [X509Certificate]s. [codeblocks] [gdscript] - extends Node - var crypto = Crypto.new() - var key = CryptoKey.new() - var cert = X509Certificate.new() - - func _ready(): - # Generate new RSA key. - key = crypto.generate_rsa(4096) - # Generate new self-signed certificate with the given key. - 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) + + # 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) [/gdscript] [csharp] using Godot; using System.Diagnostics; - public partial class MyNode : Node - { - private Crypto _crypto = new Crypto(); - private CryptoKey _key = new CryptoKey(); - private X509Certificate _cert = new X509Certificate(); - - public override void _Ready() - { - // Generate new RSA key. - _key = _crypto.GenerateRsa(4096); - // Generate new self-signed certificate with the given key. - _cert = _crypto.GenerateSelfSignedCertificate(_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 - string data = "Some data"; - byte[] encrypted = _crypto.Encrypt(_key, data.ToUtf8Buffer()); - // Decryption - byte[] decrypted = _crypto.Decrypt(_key, encrypted); - // Signing - byte[] signature = _crypto.Sign(HashingContext.HashType.Sha256, Data.Sha256Buffer(), _key); - // Verifying - bool verified = _crypto.Verify(HashingContext.HashType.Sha256, Data.Sha256Buffer(), signature, _key); - // Checks - Debug.Assert(verified); - Debug.Assert(data.ToUtf8Buffer() == decrypted); - } - } + Crypto crypto = new Crypto(); + + // Generate new RSA key. + CryptoKey key = crypto.GenerateRsa(4096); + + // Generate new self-signed certificate with the given key. + X509Certificate cert = crypto.GenerateSelfSignedCertificate(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 + string data = "Some data"; + byte[] encrypted = crypto.Encrypt(key, data.ToUtf8Buffer()); + + // Decryption + byte[] decrypted = crypto.Decrypt(key, encrypted); + + // Signing + byte[] signature = crypto.Sign(HashingContext.HashType.Sha256, Data.Sha256Buffer(), key); + + // Verifying + bool verified = crypto.Verify(HashingContext.HashType.Sha256, Data.Sha256Buffer(), signature, key); + + // Checks + Debug.Assert(verified); + Debug.Assert(data.ToUtf8Buffer() == decrypted); [/csharp] [/codeblocks]