跳到主要内容

Crypto

继承

Reference

简要描述

访问高级加密功能。

描述

Crypto类允许您访问IdeaXR中的一些更高级的加密功能。

目前,这包括生成加密安全的随机字节,以及RSA密钥和自签名X509证书的生成。计划在将来的版本中提供更多功能。

extends Node

var crypto = Crypto.new()
var key = CryptoKey.new()
var cert = X509Certificate.new()

func _ready():
# 生成新的RSA密钥。
key = crypto.generate_rsa(4096)
# 使用给定的密钥生成新的自签名证书。
cert = crypto.generate_self_signed_certificate(key, "CN=mydomain.com,O=My Game Company,C=IT")
# 将密钥和证书保存在用户文件夹中。
key.save("user://generated.key")
cert.save("user://generated.crt")

注意:在HTML5导出中不可用。

方法

返回值类型方法名称
PoolByteArraygenerate_random_bytes(size: int)
CryptoKeygenerate_rsa(size: int)
X509Certificategenerate_self_signed_certificate(key: CryptoKey, issuer_name: String = "CN=myserver,O=myorganisation,C=IT", not_before: String = "20140101000000", not_after: String = "20340101000000")

方法说明

  • generate_random_bytes generate_random_bytes(size: int)

生成具有给定size的加密安全随机字节的PoolByteArray


  • generate_rsa generate_rsa(size: int)

生成可用于创建自签名证书并传递给StreamPeerSSL.accept_stream的RSA CryptoKey


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

根据给定的CryptoKeyissuer_name生成自签名的X509Certificate。证书的有效性将由not_beforenot_after(第一个有效日期和最后一个有效日期)定义。issuer_name必须至少包含"CN="(通用名称,即域名),"O="(组织,即您的公司名称),"C="(国家,即国家的ISO-3166代码)。

一个生成RSA密钥和X509自签名证书的小示例。

var crypto = Crypto.new()
# 生成4096位的RSA密钥。
var key = crypto.generate_rsa(4096)
# 使用给定的密钥生成自签名证书。
var cert = crypto.generate_self_signed_certificate(key, "CN=example.com,O=A Game Company,C=IT")