모듈: Mongo::Crypt::Hooks Private
- 다음에 정의됨:
- build/ruby-driver-v2.19/lib/mongo/crypt/hooks.rb
개요
이 모듈은 비공개 API의 일부입니다. 이 모듈은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
네이티브 Ruby 암호화 후크에 필요한 암호화 메서드를 구현하는 헬퍼 모듈입니다. 이러한 메서드는 C 콜백으로 FFI에 전달되고 libmongocrypt 라이브러리에서 호출됩니다.
클래스 메서드 요약 접기
-
.aes(키, iv, 입력, 암호 해독: false, 모드: :CBC) ⇒ string
비공개
AES 암호화 또는 암호 해독 메서드입니다.
-
.hash_sha256(입력) ⇒ string
비공개
암호화 해시(SHA-256) 함수입니다.
-
.hmac_sha(digest_name, 키, 입력) ⇒ string
비공개
HMAC SHA-512 또는 SHA-256 함수입니다.
-
.random(num_bytes) ⇒ string
비공개
암호화 보안 랜덤 함수.
-
.rsaes_pkcs_signature(키, 입력) ⇒ string
비공개
SHA-256 서명 함수가 있는 RSASSA-PKCS1-v1_5 .
클래스 메서드 세부 정보
.aes(키, iv, 입력, 암호 해독: false, 모드: :CBC) ⇒ string
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
AES 암호화 또는 암호 해독 메서드입니다.
43 44 45 46 47 48 49 50 51 52 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/hooks.rb', 줄 43 def aes(키, iv, 입력, 암호 해독: 거짓, 모드: :CBC) 암호 = OpenSSL::암호::AES.신규(256, 모드) 암호 해독 ? 암호.암호 해독 : 암호.암호화 암호.키 = 키 암호.iv = iv 암호.패딩 = 0 암호화됨 = 암호.update(입력) end |
.hash_sha256(입력) ⇒ string
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
암호화 해시(SHA-256) 함수
88 89 90 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/hooks.rb', 줄 88 def hash_sha256(입력) 다이제스트::SHA2.신규(256).다이제스트(입력) end |
.hmac_sha(digest_name, 키, 입력) ⇒ string
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
HMAC SHA-512 또는 SHA-256 함수
76 77 78 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/hooks.rb', 줄 76 def hmac_sha(다이제스트 이름, 키, 입력) OpenSSL::HMAC.다이제스트(다이제스트 이름, 키, 입력) end |
.random(num_bytes) ⇒ string
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
암호화 보안 랜덤 함수
62 63 64 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/hooks.rb', 줄 62 def 랜덤(num_bytes) SecureRandom.random_bytes(num_bytes) end |
.rsaes_pkcs_signature(키, 입력) ⇒ string
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
SHA-256 서명 함수가 있는 RSASSA-PKCS1-v1_5 .
99 100 101 102 103 104 105 106 107 108 109 110 111 112 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/crypt/hooks.rb', 줄 99 def rsaes_pkcs_signature(키, 입력) PRIVATE_KEY = 만약 BSON::환경.jruby? # JRuby는 DER 형식을 읽을 수 없으므로 먼저 키를 PEM으로 변환해야 합니다. key_pem = [ "-----BEGIN PRIVATE KEY-----", Base64.strict_encode64(Base64.디코딩64(키)).스캔(/.{1,64}/), "-----END 개인 키-----", ].가입("\n") OpenSSL::PKey::RSA.신규(key_pem) other OpenSSL::PKey.읽기(Base64.디코딩64(키)) end PRIVATE_KEY.기호(OpenSSL::다이제스트::SHA256.신규, 입력) end |