Módulo: Mongo::Crypt::Hoooks Private
- Definido em:
- build/ruby-driver-v2.19/lib/mongo/crypt/hooks.rb
Visão geral
Este módulo faz parte de uma API privada. Você deve evitar usar este módulo, se possível, pois ele pode ser removido ou alterado no futuro.
Um módulo assistente que implementa métodos de criptografia necessários para ganchos de criptografia Ruby nativos. Esses métodos são passados para o FFI como retornos de chamada C e chamados da biblioteca libmongocrypt.
Recolhimento do Resumo do método de classe
-
.aes(chave, iv, entrada, descriptografar: falso, modo: :CBC) ➤ string
privado
Um método de criptografia ou descriptografia AES.
-
.hash_sha256(entrada) ➤ string
privado
Uma função de hash criptografado (SHA-256).
-
.hmac_sha(digest_name, chave, entrada) ➤ string
privado
Uma função HMAC SHA-512 ou SHA-256 .
-
.random(num_bytes) ➤ string
privado
Função aleatória segura de criptografia.
-
.rsaes_pkcs_signature(chave, entrada) ➤ string
privado
Um RASSA-PKCS1-v1_5 com SHA-256 função de assinatura.
Detalhes do método de classe
.aes(chave, iv, entrada, descriptografar: falso, modo: :CBC) ➤ string
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Um método de criptografia ou descriptografia AES.
43 44 45 46 47 48 49 50 51 52 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/hooks.rb', linha 43 def aes(chave, 4, Entrada, descriptografar: false, modo: :CBC) cifra = OpenSSL::Cifra::AES.Novo(256, Modo) Descriptografar ? cifra.Descriptografar : cifra.criptografar cifra.chave = chave cifra.4 = 4 cifra.Preenchimento = 0 criptografado = cifra.update(Entrada) end |
.hash_sha256(entrada) ➤ string
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Uma função de hash de criptografia (SHA-256)
88 89 90 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/hooks.rb', linha 88 def hash_sha256(Entrada) Digest::SHA2.Novo(256).digerir(Entrada) end |
.hmac_sha(digest_name, chave, entrada) ➤ string
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Uma função HMAC SHA-512 ou SHA-256
76 77 78 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/hooks.rb', linha 76 def hmac_sha(digest_name, chave, Entrada) OpenSSL::HMAC.digerir(digest_name, chave, Entrada) end |
.random(num_bytes) ➤ string
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Função aleatória segura de criptografia
62 63 64 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/hooks.rb', linha 62 def Aleatório(num_bytes) SecureRandom.random_bytes(num_bytes) end |
.rsaes_pkcs_signature(chave, entrada) ➤ string
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Um RASSA-PKCS1-v1_5 com SHA-256 função de assinatura.
99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# File 'build/ruby-driver-v2.19/lib/mongo/crypt/hooks.rb', linha 99 def rsaes_pkcs_signature(chave, Entrada) PRIVATE_KEY = se BSON::ambiente.jRuby? # O JRuby não pode ler o formato DER, precisamos converter a chave em PEM primeiro. key_pem = [ "-----BEGIN PRIVATE KEY-----", Base64.strict_encode64(Base64.decodificar64(chave)).digitalizar(/.{1,64}/), "-----END KEY -----", ].juntar("\n") OpenSSL::PKey::RSA.Novo(key_pem) mais OpenSSL::PKey.ler(Base64.decodificar64(chave)) end PRIVATE_KEY.assinar(OpenSSL::Digest::SHA256.Novo, Entrada) end |