mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00

This list was originally in alphabetical order. Sort it again.
This change should be safe since the .rb sources should only depend on
the extension and not each other.
eb3998728a
38 lines
1.1 KiB
Ruby
38 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
=begin
|
|
= Info
|
|
'OpenSSL for Ruby 2' project
|
|
Copyright (C) 2002 Michal Rokos <m.rokos@sh.cvut.cz>
|
|
All rights reserved.
|
|
|
|
= Licence
|
|
This program is licensed under the same licence as Ruby.
|
|
(See the file 'COPYING'.)
|
|
=end
|
|
|
|
require 'openssl.so'
|
|
|
|
require_relative 'openssl/asn1'
|
|
require_relative 'openssl/bn'
|
|
require_relative 'openssl/cipher'
|
|
require_relative 'openssl/digest'
|
|
require_relative 'openssl/hmac'
|
|
require_relative 'openssl/pkcs5'
|
|
require_relative 'openssl/pkey'
|
|
require_relative 'openssl/ssl'
|
|
require_relative 'openssl/version'
|
|
require_relative 'openssl/x509'
|
|
|
|
module OpenSSL
|
|
# call-seq:
|
|
# OpenSSL.secure_compare(string, string) -> boolean
|
|
#
|
|
# Constant time memory comparison. Inputs are hashed using SHA-256 to mask
|
|
# the length of the secret. Returns +true+ if the strings are identical,
|
|
# +false+ otherwise.
|
|
def self.secure_compare(a, b)
|
|
hashed_a = OpenSSL::Digest.digest('SHA256', a)
|
|
hashed_b = OpenSSL::Digest.digest('SHA256', b)
|
|
OpenSSL.fixed_length_secure_compare(hashed_a, hashed_b) && a == b
|
|
end
|
|
end
|