lib/poly_pseudo/util.rb in poly_pseudo-0.1.3 vs lib/poly_pseudo/util.rb in poly_pseudo-0.1.4

- old
+ new

@@ -19,15 +19,16 @@ # @param [OpenSSL::BN] bn def oaep_decode(em, p = '', hlen = 10) raise 'message is too short!' if em.length < hlen * 2 + 1 - maskedSeed = em[0...hlen] - maskedDB = em[hlen..-1] + raise 'Y should be zero!' unless em[0] == "\x00" + maskedSeed = em[1..hlen] + maskedDB = em[(hlen+1)..-1] seedMask = mgf1 maskedDB, hlen seed = xor maskedSeed, seedMask - dbMask = mgf1 seed, em.size - hlen + dbMask = mgf1 seed, em.size - hlen - 1 db = xor maskedDB, dbMask pHash = Digest::SHA384.digest(p)[0...hlen] ind = db.index("\x01", hlen) raise 'message is invalid!' if ind.nil?