summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/email/smime/signer_spec.rb
blob: 56048b7148cc4b9a26956cc7bde89544dbaf084a (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
# frozen_string_literal: true

require 'spec_helper'

describe Gitlab::Email::Smime::Signer do
  include SmimeHelper

  it 'signs data appropriately with SMIME' do
    root_certificate = generate_root
    certificate = generate_cert(root_ca: root_certificate)

    signed_content = described_class.sign(
      cert: certificate[:cert],
      key: certificate[:key],
      data: 'signed content')
    expect(signed_content).not_to be_nil

    p7enc = described_class.verify_signature(
      cert: certificate[:cert],
      ca_cert: root_certificate[:cert],
      signed_data: signed_content)

    expect(p7enc).not_to be_nil
    expect(p7enc.data).to eq('signed content')
  end
end