結論から書くと、pkcs5_keyivgen に相当する処理を pure Ruby で実装すれば次のようになる。 def evp_bytes_to_key(digest, key_len, iv_len, pass, salt="", count=2048) total_len = key_len + iv_len return_buf = "" digest_buf = "" until return_buf.size >= total_len digest_buf << pass << salt count.times { digest_buf = digest.digest(digest_buf) } return_buf << digest_buf end return return_buf[0,key_len], return_buf[key_len,iv_len] end まず