模块:Mongo::Crypt::Hooks Private
- 定义于:
- build/Ruby-driver-v 2.19 /lib/mongo/crypt/hooks.rb
Overview
该模块是私有 API 的一部分。 您应尽可能避免使用此模块,因为它将来可能会被删除或更改。
一个辅助模块,用于实现原生Ruby加密钩子所需的加密方法。 这些方法作为C回调传递到 FFI,并从 libmongocrypt 库调用。
类方法摘要折叠
-
。 aes (key, iv, input,crypto: false, 模式: :CBC) ⇒ string
private
AES 加密或解密方法。
-
。 hash_sha256 (输入) ⇒ string
private
加密哈希 (SHA- 256 ) 函数。
-
。 hmac_sha (digest_name, key, input) ⇒ string
private
HMAC SHA- 512或 SHA- 256函数。
-
。随机(num_bytes) ⇒ string
private
加密安全随机函数。
-
。 rsaes_pkcs_signature (key, input) ⇒ string
private
具有 SHA- 256签名函数的 RSASSA-PKCS 1 -v 1 _ 5 。
类方法详细信息
。 aes (key, iv, input,crypto: false, 模式: :CBC) ⇒ string
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
AES 加密或解密方法。
43 44 45 46 47 48 49 50 51 52 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/crypt/hooks.rb', 第43行 def aes(key, iv, 输入, 解密: false, 模式: :CBC) cipher = OpenSSL::Cipher::AES.new(256, 模式) 解密 ? cipher.解密 : cipher.加密 cipher.key = key cipher.iv = iv cipher.填充 = 0 加密 = cipher.update(输入) end |
。 hash_sha256 (输入) ⇒ string
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
加密哈希 (SHA- 256 ) 函数
88 89 90 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/crypt/hooks.rb', 第88行 def hash_sha 256(输入) 摘要::SHA 2.new(256).摘要(输入) end |
。 hmac_sha (digest_name, key, input) ⇒ string
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
HMAC SHA- 512或 SHA- 256函数
76 77 78 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/crypt/hooks.rb', 第76行 def hmac_sha(摘要名称, key, 输入) OpenSSL::HMAC.摘要(摘要名称, key, 输入) end |
。随机(num_bytes) ⇒ string
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
加密安全随机函数
62 63 64 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/crypt/hooks.rb', 第62行 def 随机(num_bytes) SecureRandom.random_bytes(num_bytes) end |
。 rsaes_pkcs_signature (key, input) ⇒ string
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
具有 SHA- 256签名函数的 RSASSA-PKCS 1 -v 1 _ 5 。
99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/crypt/hooks.rb', 第99行 def rsaes_pkcs_signature(key, 输入) PRIVATE_KEY = if BSON::environment.jRuby? # JRuby 无法读取 DER 格式,我们需要先将密钥转换为 PEM。 key_pem = [ " -----BEGIN PRIVATE KEY----- ", Base64.strict_encode 64(Base64.解码64(key)).扫描(/ .{1 , 64} /), " -----END PRIVATE KEY----- ", ].连接 (JOIN)(" \n ") OpenSSL::PKey::RSA.new(key_pem) else OpenSSL::PKey.读(Base64.解码64(key)) end PRIVATE_KEY.标志(OpenSSL::摘要::SHA256.new, 输入) end |