aboutsummaryrefslogtreecommitdiffstats
path: root/test/pkcs7.rb
blob: b4f4b3bf3e0b9f6b00980977f837c8e176918ef3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/env ruby
require 'openssl'

include OpenSSL
include PKey
include X509
include PKCS7

data = File.open(ARGV[0]).read

str = File.open('./server.pem').read
cert = Certificate.new(str)
key = RSA.new(str)

p7 = PKCS7.new(SIGNED)
signer = Signer.new(cert, key, Digest::SHA1.new)
p7.add_signer(signer, key)
p7.add_certificate(cert)
p7.add_data(data, true) #...(data, (detached=false))
puts (str = p7.to_pem)

p store = Store.new
p store.set_default_paths
p store.load_locations("../../certs")

ver_cb = Proc.new {|ok, store|
  puts "HERE!"
  true
}
p store.verify_callback = ver_cb

p p7 = PKCS7.new(str)
p p7.verify_data(store, data) {|signer|
  puts "GOT IT!"
  p signer.name.to_str
  p signer.serial
  p signer.signed_time
}