stomper 1.0.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +5 -0
- data/{spec/spec.opts → .rspec} +0 -2
- data/Gemfile +4 -0
- data/LICENSE +201 -201
- data/README.md +130 -0
- data/Rakefile +5 -0
- data/examples/basic.rb +38 -0
- data/examples/events.rb +54 -0
- data/features/acking_messages.feature +147 -0
- data/features/disconnecting.feature +12 -0
- data/features/establish_connection.feature +44 -0
- data/features/protocol_version_negotiation.feature +61 -0
- data/features/receipts.feature +72 -0
- data/features/scopes.feature +32 -0
- data/features/secure_connections.feature +38 -0
- data/features/send_and_message.feature +28 -0
- data/features/steps/acking_messages_steps.rb +39 -0
- data/features/steps/disconnecting_steps.rb +8 -0
- data/features/steps/establish_connection_steps.rb +74 -0
- data/features/steps/frame_transmission_steps.rb +35 -0
- data/features/steps/protocol_version_negotiation_steps.rb +15 -0
- data/features/steps/receipts_steps.rb +79 -0
- data/features/steps/scopes_steps.rb +52 -0
- data/features/steps/secure_connections_steps.rb +41 -0
- data/features/steps/send_and_message_steps.rb +35 -0
- data/features/steps/subscribing_steps.rb +36 -0
- data/features/steps/threaded_receiver_steps.rb +8 -0
- data/features/steps/transactions_steps.rb +0 -0
- data/features/subscribing.feature +151 -0
- data/features/support/env.rb +11 -0
- data/features/support/header_helpers.rb +12 -0
- data/features/support/ssl/README +6 -0
- data/features/support/ssl/broker_cert.csr +17 -0
- data/features/support/ssl/broker_cert.pem +72 -0
- data/features/support/ssl/broker_key.pem +27 -0
- data/features/support/ssl/client_cert.csr +17 -0
- data/features/support/ssl/client_cert.pem +72 -0
- data/features/support/ssl/client_key.pem +27 -0
- data/features/support/ssl/demoCA/cacert.pem +17 -0
- data/features/support/ssl/demoCA/index.txt +2 -0
- data/features/support/ssl/demoCA/index.txt.attr +1 -0
- data/features/support/ssl/demoCA/index.txt.attr.old +1 -0
- data/features/support/ssl/demoCA/index.txt.old +1 -0
- data/features/support/ssl/demoCA/newcerts/01.pem +72 -0
- data/features/support/ssl/demoCA/newcerts/02.pem +72 -0
- data/features/support/ssl/demoCA/private/cakey.pem +17 -0
- data/features/support/ssl/demoCA/serial +1 -0
- data/features/support/ssl/demoCA/serial.old +1 -0
- data/features/support/test_stomp_server.rb +150 -0
- data/features/threaded_receiver.feature +11 -0
- data/features/transactions.feature +66 -0
- data/lib/stomper.rb +30 -20
- data/lib/stomper/connection.rb +442 -102
- data/lib/stomper/errors.rb +59 -0
- data/lib/stomper/extensions.rb +10 -0
- data/lib/stomper/extensions/common.rb +258 -0
- data/lib/stomper/extensions/events.rb +213 -0
- data/lib/stomper/extensions/heartbeat.rb +101 -0
- data/lib/stomper/extensions/scoping.rb +56 -0
- data/lib/stomper/frame.rb +54 -0
- data/lib/stomper/frame_serializer.rb +217 -0
- data/lib/stomper/headers.rb +15 -0
- data/lib/stomper/receipt_manager.rb +36 -0
- data/lib/stomper/receivers.rb +7 -0
- data/lib/stomper/receivers/threaded.rb +71 -0
- data/lib/stomper/scopes.rb +9 -0
- data/lib/stomper/scopes/header_scope.rb +49 -0
- data/lib/stomper/scopes/receipt_scope.rb +44 -0
- data/lib/stomper/scopes/transaction_scope.rb +109 -0
- data/lib/stomper/sockets.rb +66 -28
- data/lib/stomper/subscription_manager.rb +79 -0
- data/lib/stomper/support.rb +68 -0
- data/lib/stomper/support/1.8/frame_serializer.rb +53 -0
- data/lib/stomper/support/1.8/headers.rb +183 -0
- data/lib/stomper/support/1.9/frame_serializer.rb +64 -0
- data/lib/stomper/support/1.9/headers.rb +172 -0
- data/lib/stomper/support/ruby.rb +13 -0
- data/lib/stomper/uris.rb +49 -0
- data/lib/stomper/version.rb +7 -0
- data/spec/spec_helper.rb +13 -9
- data/spec/stomper/connection_spec.rb +712 -0
- data/spec/stomper/extensions/common_spec.rb +187 -0
- data/spec/stomper/extensions/events_spec.rb +78 -0
- data/spec/stomper/extensions/heartbeat_spec.rb +103 -0
- data/spec/stomper/extensions/scoping_spec.rb +21 -0
- data/spec/stomper/frame_serializer_1.8_spec.rb +318 -0
- data/spec/stomper/frame_serializer_spec.rb +316 -0
- data/spec/stomper/frame_spec.rb +36 -0
- data/spec/stomper/headers_spec.rb +224 -0
- data/spec/stomper/receipt_manager_spec.rb +91 -0
- data/spec/stomper/receivers/threaded_spec.rb +116 -0
- data/spec/stomper/scopes/header_scope_spec.rb +42 -0
- data/spec/stomper/scopes/receipt_scope_spec.rb +51 -0
- data/spec/stomper/scopes/transaction_scope_spec.rb +183 -0
- data/spec/stomper/sockets_spec.rb +113 -0
- data/spec/stomper/subscription_manager_spec.rb +107 -0
- data/spec/stomper/support_spec.rb +69 -0
- data/spec/stomper/uris_spec.rb +54 -0
- data/spec/stomper_spec.rb +9 -0
- data/spec/support/custom_argument_matchers.rb +57 -0
- data/spec/support/existential_frame_matchers.rb +19 -0
- data/spec/support/frame_header_matchers.rb +10 -0
- data/stomper.gemspec +30 -0
- metadata +272 -97
- data/AUTHORS +0 -21
- data/CHANGELOG +0 -20
- data/README.rdoc +0 -120
- data/lib/stomper/client.rb +0 -34
- data/lib/stomper/frame_reader.rb +0 -73
- data/lib/stomper/frame_writer.rb +0 -21
- data/lib/stomper/frames.rb +0 -39
- data/lib/stomper/frames/abort.rb +0 -10
- data/lib/stomper/frames/ack.rb +0 -25
- data/lib/stomper/frames/begin.rb +0 -11
- data/lib/stomper/frames/client_frame.rb +0 -89
- data/lib/stomper/frames/commit.rb +0 -10
- data/lib/stomper/frames/connect.rb +0 -10
- data/lib/stomper/frames/connected.rb +0 -30
- data/lib/stomper/frames/disconnect.rb +0 -10
- data/lib/stomper/frames/error.rb +0 -21
- data/lib/stomper/frames/message.rb +0 -48
- data/lib/stomper/frames/receipt.rb +0 -19
- data/lib/stomper/frames/send.rb +0 -10
- data/lib/stomper/frames/server_frame.rb +0 -38
- data/lib/stomper/frames/subscribe.rb +0 -42
- data/lib/stomper/frames/unsubscribe.rb +0 -19
- data/lib/stomper/open_uri_interface.rb +0 -41
- data/lib/stomper/receipt_handlers.rb +0 -23
- data/lib/stomper/receiptor.rb +0 -38
- data/lib/stomper/subscriber.rb +0 -76
- data/lib/stomper/subscription.rb +0 -128
- data/lib/stomper/subscriptions.rb +0 -95
- data/lib/stomper/threaded_receiver.rb +0 -59
- data/lib/stomper/transaction.rb +0 -185
- data/lib/stomper/transactor.rb +0 -50
- data/lib/stomper/uri.rb +0 -55
- data/spec/client_spec.rb +0 -29
- data/spec/connection_spec.rb +0 -22
- data/spec/frame_reader_spec.rb +0 -37
- data/spec/frame_writer_spec.rb +0 -27
- data/spec/frames/client_frame_spec.rb +0 -66
- data/spec/frames/indirect_frame_spec.rb +0 -45
- data/spec/frames/server_frame_spec.rb +0 -85
- data/spec/open_uri_interface_spec.rb +0 -132
- data/spec/receiptor_spec.rb +0 -35
- data/spec/shared_connection_examples.rb +0 -79
- data/spec/subscriber_spec.rb +0 -77
- data/spec/subscription_spec.rb +0 -157
- data/spec/subscriptions_spec.rb +0 -145
- data/spec/threaded_receiver_spec.rb +0 -33
- data/spec/transaction_spec.rb +0 -139
- data/spec/transactor_spec.rb +0 -46
@@ -0,0 +1,36 @@
|
|
1
|
+
When /^the client subscribes to "([^"]*)" with headers$/ do |dest, table|
|
2
|
+
@subscribe_frames ||= []
|
3
|
+
headers = table_to_headers table
|
4
|
+
@default_subscription_triggered = 0
|
5
|
+
@subscribe_frames << @connection.subscribe(dest, headers) do |m|
|
6
|
+
@default_subscription_triggered += 1
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
Then /^the default subscription callback should have been triggered( (\d+) times?)?$/ do |full, times|
|
11
|
+
if times.nil? || times.empty?
|
12
|
+
@default_subscription_triggered.should >= 1
|
13
|
+
else
|
14
|
+
@default_subscription_triggered.should == times.to_i
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
Then /^the default subscription callback should not have been triggered$/ do
|
19
|
+
@default_subscription_triggered.should == 0
|
20
|
+
end
|
21
|
+
|
22
|
+
When /^the client unsubscribes by ID$/ do
|
23
|
+
@connection.unsubscribe(@subscribe_frames.last[:id])
|
24
|
+
end
|
25
|
+
|
26
|
+
When /^the client unsubscribes by destination$/ do
|
27
|
+
@connection.unsubscribe(@subscribe_frames.last[:destination])
|
28
|
+
end
|
29
|
+
|
30
|
+
When /^the client unsubscribes by frame$/ do
|
31
|
+
@connection.unsubscribe(@subscribe_frames.last)
|
32
|
+
end
|
33
|
+
|
34
|
+
When /^the client unsubscribes from destination "([^"]*)"$/ do |destination|
|
35
|
+
@connection.unsubscribe(destination)
|
36
|
+
end
|
File without changes
|
@@ -0,0 +1,151 @@
|
|
1
|
+
Feature: Subscribing
|
2
|
+
In order retrieve MESSAGEs from a broker
|
3
|
+
As a client
|
4
|
+
I want to be able to subscribe to destinations
|
5
|
+
|
6
|
+
|
7
|
+
Scenario: Delivering MESSAGE frames with subscription ID
|
8
|
+
Given a 1.1 connection between client and broker
|
9
|
+
When the client subscribes to "/queue/testing" with headers
|
10
|
+
| header-name | header-value |
|
11
|
+
| id | s-5678 |
|
12
|
+
And the broker sends a "MESSAGE" frame with headers
|
13
|
+
| header-name | header-value |
|
14
|
+
| message-id | m-1234 |
|
15
|
+
| subscription | s-5678 |
|
16
|
+
| destination | /queue/testing |
|
17
|
+
And the broker sends a "MESSAGE" frame with headers
|
18
|
+
| header-name | header-value |
|
19
|
+
| message-id | m-1235 |
|
20
|
+
| subscription | s-5678 |
|
21
|
+
| destination | /queue/testing |
|
22
|
+
And the frame exchange is completed
|
23
|
+
Then the client should have received a "MESSAGE" frame with headers
|
24
|
+
| header-name | header-value |
|
25
|
+
| message-id | m-1234 |
|
26
|
+
| subscription | s-5678 |
|
27
|
+
| destination | /queue/testing |
|
28
|
+
And the client should have received a "MESSAGE" frame with headers
|
29
|
+
| header-name | header-value |
|
30
|
+
| message-id | m-1235 |
|
31
|
+
| subscription | s-5678 |
|
32
|
+
| destination | /queue/testing |
|
33
|
+
And the default subscription callback should have been triggered 2 times
|
34
|
+
|
35
|
+
|
36
|
+
Scenario: Delivering MESSAGE frames without subscription ID
|
37
|
+
Given a 1.1 connection between client and broker
|
38
|
+
When the client subscribes to "/queue/testing" with headers
|
39
|
+
| header-name | header-value |
|
40
|
+
| id | s-5678 |
|
41
|
+
And the broker sends a "MESSAGE" frame with headers
|
42
|
+
| header-name | header-value |
|
43
|
+
| message-id | m-1234 |
|
44
|
+
| destination | /queue/testing |
|
45
|
+
And the broker sends a "MESSAGE" frame with headers
|
46
|
+
| header-name | header-value |
|
47
|
+
| message-id | m-1235 |
|
48
|
+
| destination | /queue/testing |
|
49
|
+
And the broker sends a "MESSAGE" frame with headers
|
50
|
+
| header-name | header-value |
|
51
|
+
| message-id | m-1236 |
|
52
|
+
| destination | /queue/testing |
|
53
|
+
And the frame exchange is completed
|
54
|
+
Then the client should have received a "MESSAGE" frame with headers
|
55
|
+
| header-name | header-value |
|
56
|
+
| message-id | m-1234 |
|
57
|
+
And the client should have received a "MESSAGE" frame with headers
|
58
|
+
| header-name | header-value |
|
59
|
+
| message-id | m-1235 |
|
60
|
+
And the client should have received a "MESSAGE" frame with headers
|
61
|
+
| header-name | header-value |
|
62
|
+
| message-id | m-1236 |
|
63
|
+
And the default subscription callback should have been triggered 3 times
|
64
|
+
|
65
|
+
|
66
|
+
Scenario: No callbacks for MESSAGE frames for which we have not subscribed
|
67
|
+
Given a 1.1 connection between client and broker
|
68
|
+
When the client subscribes to "/queue/testing" with headers
|
69
|
+
| header-name | header-value |
|
70
|
+
| id | s-5678 |
|
71
|
+
And the broker sends a "MESSAGE" frame with headers
|
72
|
+
| header-name | header-value |
|
73
|
+
| message-id | m-1234 |
|
74
|
+
| destination | /queue/testing |
|
75
|
+
| subscription | s-9999 |
|
76
|
+
And the frame exchange is completed
|
77
|
+
Then the client should have received a "MESSAGE" frame with headers
|
78
|
+
| header-name | header-value |
|
79
|
+
| subscription | s-9999 |
|
80
|
+
| message-id | m-1234 |
|
81
|
+
And the default subscription callback should not have been triggered
|
82
|
+
|
83
|
+
|
84
|
+
Scenario: No callbacks after unsubscribing by ID
|
85
|
+
Given a 1.1 connection between client and broker
|
86
|
+
When the client subscribes to "/queue/testing" with headers
|
87
|
+
| header-name | header-value |
|
88
|
+
| id | s-5678 |
|
89
|
+
And the broker sends a "MESSAGE" frame with headers
|
90
|
+
| header-name | header-value |
|
91
|
+
| message-id | m-1234 |
|
92
|
+
| destination | /queue/testing |
|
93
|
+
| subscription | s-5678 |
|
94
|
+
And the client unsubscribes by ID
|
95
|
+
And the broker sends a "MESSAGE" frame with headers
|
96
|
+
| header-name | header-value |
|
97
|
+
| message-id | m-1235 |
|
98
|
+
| destination | /queue/testing |
|
99
|
+
| subscription | s-5678 |
|
100
|
+
And the client disconnects
|
101
|
+
Then the default subscription callback should have been triggered 1 time
|
102
|
+
|
103
|
+
Scenario: No callbacks after unsubscribing by frame
|
104
|
+
Given a 1.1 connection between client and broker
|
105
|
+
When the client subscribes to "/queue/testing" with headers
|
106
|
+
| header-name | header-value |
|
107
|
+
| id | s-5678 |
|
108
|
+
And the broker sends a "MESSAGE" frame with headers
|
109
|
+
| header-name | header-value |
|
110
|
+
| message-id | m-1234 |
|
111
|
+
| destination | /queue/testing |
|
112
|
+
| subscription | s-5678 |
|
113
|
+
And the client unsubscribes by frame
|
114
|
+
And the broker sends a "MESSAGE" frame with headers
|
115
|
+
| header-name | header-value |
|
116
|
+
| message-id | m-1235 |
|
117
|
+
| destination | /queue/testing |
|
118
|
+
| subscription | s-5678 |
|
119
|
+
And the frame exchange is completed
|
120
|
+
Then the default subscription callback should have been triggered 1 time
|
121
|
+
|
122
|
+
Scenario: Unsubscribing from many by destination
|
123
|
+
Given a 1.1 connection between client and broker
|
124
|
+
When the client subscribes to "/queue/testing" with headers
|
125
|
+
| header-name | header-value |
|
126
|
+
| id | s-5678 |
|
127
|
+
And the client subscribes to "/queue/testing" with headers
|
128
|
+
| header-name | header-value |
|
129
|
+
| id | s-5679 |
|
130
|
+
And the broker sends a "MESSAGE" frame with headers
|
131
|
+
| header-name | header-value |
|
132
|
+
| message-id | m-1234 |
|
133
|
+
| destination | /queue/testing |
|
134
|
+
| subscription | s-5678 |
|
135
|
+
And the broker sends a "MESSAGE" frame with headers
|
136
|
+
| header-name | header-value |
|
137
|
+
| message-id | m-1235 |
|
138
|
+
| destination | /queue/testing |
|
139
|
+
And the client unsubscribes from destination "/queue/testing"
|
140
|
+
And the broker sends a "MESSAGE" frame with headers
|
141
|
+
| header-name | header-value |
|
142
|
+
| message-id | m-1235 |
|
143
|
+
| destination | /queue/testing |
|
144
|
+
And the frame exchange is completed
|
145
|
+
Then the default subscription callback should have been triggered 3 times
|
146
|
+
And the broker should have received an "UNSUBSCRIBE" frame with headers
|
147
|
+
| header-name | header-value |
|
148
|
+
| id | s-5678 |
|
149
|
+
And the broker should have received an "UNSUBSCRIBE" frame with headers
|
150
|
+
| header-name | header-value |
|
151
|
+
| id | s-5679 |
|
@@ -0,0 +1,6 @@
|
|
1
|
+
These are all the SSL certificates / keys needed for testing SSL connectivity
|
2
|
+
with stomper. The CA key file is protected with the pass phrase "testing"
|
3
|
+
The file broker_cert.pem is a copy of demoCA/newcerts/01.pem.
|
4
|
+
The file client_cert.pem is a copy of demoCA/newcerts/02.pem.
|
5
|
+
|
6
|
+
All keys, certificates and signing requests were created using OpenSSL 1.0.0c
|
@@ -0,0 +1,17 @@
|
|
1
|
+
-----BEGIN CERTIFICATE REQUEST-----
|
2
|
+
MIICuzCCAaMCAQAwdjELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5vd2hlcmVzMRAw
|
3
|
+
DgYDVQQHDAdTdG9tcGVyMRgwFgYDVQQKDA9TdG9tcGVyIFRlc3RpbmcxFDASBgNV
|
4
|
+
BAsMC1NTTCBUZXN0aW5nMRIwEAYDVQQDDAlNeSBCcm9rZXIwggEiMA0GCSqGSIb3
|
5
|
+
DQEBAQUAA4IBDwAwggEKAoIBAQDr3b4th1QTzkzhvcnI4BiwUPEwyG4ierzG6j/i
|
6
|
+
xCTZjEGUVNTge1xs3b1Bj72qmMLw6RN+NlqXV+RqBAiqEitoS51aQJJBV1su0uH0
|
7
|
+
+MQx3WwtTBKrgHJxOU6qFLj2NegHn6KjuKYIjWDVUwE4jKoX6bCzjOPZTRQC2pr/
|
8
|
+
b1tlusNWgLDejsglPxugrIAcOOB3TsZdkkSXw/i6mgKDqBtXOzjWfX+VhvTC3lHQ
|
9
|
+
7qEwtDma9lgDYpOUpXJyolx+z1R/V5JG+PexeVYgvZUl1RFdwFzHzc9Ej4ho4W/A
|
10
|
+
yi7b/NAZgjaxPyCC386mVUQCUYtsT6Ems0HoC6gMj2dlku7fAgMBAAGgADANBgkq
|
11
|
+
hkiG9w0BAQUFAAOCAQEATXSzaRT7a490U5wXRRSInbFOBe21eTGb63bCwN7RBTV3
|
12
|
+
W9CE2b2nDkomFt9BmlFn+/+adzNlyRBV/qq0nwBpNI0tZURfz3Voxt0KhcooX+SD
|
13
|
+
uRrS3/JHONjdSpXVPIlrq5FXe4HkMzgj00JXKkO/pYL+WhZKhY0m1pRr/+9B7QMu
|
14
|
+
bm9blUo2HSkhnmVMfbMIV17H5npBYrZj+XgE0BdwX+5N05HpO+OaLFUc9qz8ZYWh
|
15
|
+
nwx3MjHIBHsPbmZJ88qQr/EvXxuuVdEOvMvvUBATgOfw9gruFXeLbZ3Jo1GN/WnY
|
16
|
+
XApL545jeEmUNDYvWFVcuQI1zjeLsdrboclH3Tlqkg==
|
17
|
+
-----END CERTIFICATE REQUEST-----
|
@@ -0,0 +1,72 @@
|
|
1
|
+
Certificate:
|
2
|
+
Data:
|
3
|
+
Version: 3 (0x2)
|
4
|
+
Serial Number: 1 (0x1)
|
5
|
+
Signature Algorithm: sha1WithRSAEncryption
|
6
|
+
Issuer: C=US, ST=Nowheres, L=Stomper, O=Stomper Testing, OU=CA Testing, CN=Stomper CA
|
7
|
+
Validity
|
8
|
+
Not Before: Feb 21 16:50:01 2011 GMT
|
9
|
+
Not After : Feb 18 16:50:01 2021 GMT
|
10
|
+
Subject: C=US, ST=Nowheres, O=Stomper Testing, OU=SSL Testing, CN=My Broker
|
11
|
+
Subject Public Key Info:
|
12
|
+
Public Key Algorithm: rsaEncryption
|
13
|
+
Public-Key: (2048 bit)
|
14
|
+
Modulus:
|
15
|
+
00:eb:dd:be:2d:87:54:13:ce:4c:e1:bd:c9:c8:e0:
|
16
|
+
18:b0:50:f1:30:c8:6e:22:7a:bc:c6:ea:3f:e2:c4:
|
17
|
+
24:d9:8c:41:94:54:d4:e0:7b:5c:6c:dd:bd:41:8f:
|
18
|
+
bd:aa:98:c2:f0:e9:13:7e:36:5a:97:57:e4:6a:04:
|
19
|
+
08:aa:12:2b:68:4b:9d:5a:40:92:41:57:5b:2e:d2:
|
20
|
+
e1:f4:f8:c4:31:dd:6c:2d:4c:12:ab:80:72:71:39:
|
21
|
+
4e:aa:14:b8:f6:35:e8:07:9f:a2:a3:b8:a6:08:8d:
|
22
|
+
60:d5:53:01:38:8c:aa:17:e9:b0:b3:8c:e3:d9:4d:
|
23
|
+
14:02:da:9a:ff:6f:5b:65:ba:c3:56:80:b0:de:8e:
|
24
|
+
c8:25:3f:1b:a0:ac:80:1c:38:e0:77:4e:c6:5d:92:
|
25
|
+
44:97:c3:f8:ba:9a:02:83:a8:1b:57:3b:38:d6:7d:
|
26
|
+
7f:95:86:f4:c2:de:51:d0:ee:a1:30:b4:39:9a:f6:
|
27
|
+
58:03:62:93:94:a5:72:72:a2:5c:7e:cf:54:7f:57:
|
28
|
+
92:46:f8:f7:b1:79:56:20:bd:95:25:d5:11:5d:c0:
|
29
|
+
5c:c7:cd:cf:44:8f:88:68:e1:6f:c0:ca:2e:db:fc:
|
30
|
+
d0:19:82:36:b1:3f:20:82:df:ce:a6:55:44:02:51:
|
31
|
+
8b:6c:4f:a1:26:b3:41:e8:0b:a8:0c:8f:67:65:92:
|
32
|
+
ee:df
|
33
|
+
Exponent: 65537 (0x10001)
|
34
|
+
X509v3 extensions:
|
35
|
+
X509v3 Basic Constraints:
|
36
|
+
CA:FALSE
|
37
|
+
Netscape Comment:
|
38
|
+
OpenSSL Generated Certificate
|
39
|
+
X509v3 Subject Key Identifier:
|
40
|
+
5C:28:4D:B8:A3:D7:CB:43:2C:1C:DB:0F:7B:75:99:85:44:4E:D8:A1
|
41
|
+
X509v3 Authority Key Identifier:
|
42
|
+
keyid:7C:4F:50:BF:C6:57:97:6B:D9:1C:F1:92:EF:B5:66:47:94:79:15:74
|
43
|
+
|
44
|
+
Signature Algorithm: sha1WithRSAEncryption
|
45
|
+
51:2f:da:d1:a4:9f:97:77:00:69:bb:04:85:34:75:bd:2e:ad:
|
46
|
+
45:83:a7:95:f1:83:5d:52:1e:65:79:ee:5b:a0:f5:7b:82:53:
|
47
|
+
88:c3:fc:89:c8:4f:68:4e:80:8a:cb:53:4f:44:a8:6d:8c:be:
|
48
|
+
be:74:19:ff:75:52:14:3b:70:42:87:cf:fc:90:58:7e:c9:cd:
|
49
|
+
d4:a2:b8:15:74:e8:51:ce:9c:73:ca:a5:29:76:4a:f3:a4:26:
|
50
|
+
f3:70:c5:8e:5f:cf:fe:7d:81:de:43:9e:36:c0:87:7b:66:02:
|
51
|
+
7f:02:2d:64:48:19:be:74:4a:27:cd:c5:56:c5:ff:96:1a:02:
|
52
|
+
3a:2f
|
53
|
+
-----BEGIN CERTIFICATE-----
|
54
|
+
MIIDTzCCArigAwIBAgIBATANBgkqhkiG9w0BAQUFADB2MQswCQYDVQQGEwJVUzER
|
55
|
+
MA8GA1UECAwITm93aGVyZXMxEDAOBgNVBAcMB1N0b21wZXIxGDAWBgNVBAoMD1N0
|
56
|
+
b21wZXIgVGVzdGluZzETMBEGA1UECwwKQ0EgVGVzdGluZzETMBEGA1UEAwwKU3Rv
|
57
|
+
bXBlciBDQTAeFw0xMTAyMjExNjUwMDFaFw0yMTAyMTgxNjUwMDFaMGQxCzAJBgNV
|
58
|
+
BAYTAlVTMREwDwYDVQQIDAhOb3doZXJlczEYMBYGA1UECgwPU3RvbXBlciBUZXN0
|
59
|
+
aW5nMRQwEgYDVQQLDAtTU0wgVGVzdGluZzESMBAGA1UEAwwJTXkgQnJva2VyMIIB
|
60
|
+
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA692+LYdUE85M4b3JyOAYsFDx
|
61
|
+
MMhuInq8xuo/4sQk2YxBlFTU4HtcbN29QY+9qpjC8OkTfjZal1fkagQIqhIraEud
|
62
|
+
WkCSQVdbLtLh9PjEMd1sLUwSq4BycTlOqhS49jXoB5+io7imCI1g1VMBOIyqF+mw
|
63
|
+
s4zj2U0UAtqa/29bZbrDVoCw3o7IJT8boKyAHDjgd07GXZJEl8P4upoCg6gbVzs4
|
64
|
+
1n1/lYb0wt5R0O6hMLQ5mvZYA2KTlKVycqJcfs9Uf1eSRvj3sXlWIL2VJdURXcBc
|
65
|
+
x83PRI+IaOFvwMou2/zQGYI2sT8ggt/OplVEAlGLbE+hJrNB6AuoDI9nZZLu3wID
|
66
|
+
AQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy
|
67
|
+
YXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUXChNuKPXy0MsHNsPe3WZhURO2KEw
|
68
|
+
HwYDVR0jBBgwFoAUfE9Qv8ZXl2vZHPGS77VmR5R5FXQwDQYJKoZIhvcNAQEFBQAD
|
69
|
+
gYEAUS/a0aSfl3cAabsEhTR1vS6tRYOnlfGDXVIeZXnuW6D1e4JTiMP8ichPaE6A
|
70
|
+
istTT0SobYy+vnQZ/3VSFDtwQofP/JBYfsnN1KK4FXToUc6cc8qlKXZK86Qm83DF
|
71
|
+
jl/P/n2B3kOeNsCHe2YCfwItZEgZvnRKJ83FVsX/lhoCOi8=
|
72
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEpQIBAAKCAQEA692+LYdUE85M4b3JyOAYsFDxMMhuInq8xuo/4sQk2YxBlFTU
|
3
|
+
4HtcbN29QY+9qpjC8OkTfjZal1fkagQIqhIraEudWkCSQVdbLtLh9PjEMd1sLUwS
|
4
|
+
q4BycTlOqhS49jXoB5+io7imCI1g1VMBOIyqF+mws4zj2U0UAtqa/29bZbrDVoCw
|
5
|
+
3o7IJT8boKyAHDjgd07GXZJEl8P4upoCg6gbVzs41n1/lYb0wt5R0O6hMLQ5mvZY
|
6
|
+
A2KTlKVycqJcfs9Uf1eSRvj3sXlWIL2VJdURXcBcx83PRI+IaOFvwMou2/zQGYI2
|
7
|
+
sT8ggt/OplVEAlGLbE+hJrNB6AuoDI9nZZLu3wIDAQABAoIBAQCkcckx/PQFiwPX
|
8
|
+
L3cL8hHEe+ps1JDUwTX0iUVZWN9IPZ1LSYnRqLBbxo04tHrMAg2H4TiR+ltWwRSj
|
9
|
+
RYS07k4NPQrL7dEKdVlBYA3hub8v9OyC+FLb94XSot3Rfvklz5eiGQ5Pj2FS/R7S
|
10
|
+
HDjxsEC2w1tLE6OX0UFua/M8u+rBFQpQw/mn07pxrTl2FzSsqCDU36ZU8MyFjlqy
|
11
|
+
J62n6s2gFF18CoNyGRyFbLMr3iAJ0LZ66L/O5Y/7uZLzl21F7mR9ednITp922Dkc
|
12
|
+
neNsFD/0lV15VTDo4MvTAOYtxmSLdODfBUWIrdiTBwpOCx4Y3c3ws0uMmXNeT2EJ
|
13
|
+
mUK0/ORhAoGBAP8mTjOn3+msZ1vxCljrUXjqgMZdJkuxMg9z4lEcqriy0z4JyNw7
|
14
|
+
ASesaxj/exPAfFjK+16Lshv3WjoJ/erZyMcSzrTFTl/tBOePIEnwK4h1cCW1FajD
|
15
|
+
nt9TJeHNcbw3igVV3WfQonvXqfEJ0Gf1xOwHfWzZa3O4LpD+UGL4RP0DAoGBAOym
|
16
|
+
/BWQbluP3FNPiBiaL5qp6e2wSQDGr34Dw0fN5e9SZLipp6pAs8BSWP9xac3ke2DT
|
17
|
+
ZCI8KIGltiw1735G21SiqpNQcyCIdmeBMVzQRu0xEv/WZYf6x1psdXgKRMfLJOPM
|
18
|
+
PNF9EOdyzeTYFEnoT7dngOVkwvQhR/iu8Sj3cpn1AoGBAImcDT1K4zbSJwStYdlH
|
19
|
+
QS+nukBB6O+V59vxsjPw9BqdR9UDzfMJV7wf/7sBv02N2QLCpwP879ipdV4sGWha
|
20
|
+
gTDs8dMJPxX5bVW+GboG8FOukwejPMVCjCMCY0H/XcIXajcqcjkViyyjyiIYGvCW
|
21
|
+
2tg5yem08YD96w+EObLHF94lAoGBAOv90WCHuSVhnqsNooA2McagLoEyzHoTqCmY
|
22
|
+
AwL11pgDqCFmPabQAvCEre99367MbCSwaSiiqRowcCxCVOOuMUaDOGrTTRtiOgEZ
|
23
|
+
mmod4LzjtTifSnyBno8TnUjppJFAiTcJEpUtjM/hcmUE/aZ+HhCdDLK0+pyNG8Jo
|
24
|
+
YmEh8YyJAoGAZ8TdHi2X60xXZi5iEmuy2fA2NVrCzh9CTu63Op9jztv+z91zHvwx
|
25
|
+
nKP1Xf9oXm0M0uJU/7iICaS1yzTzs6cnZ7z0awpI4HDMS50zIRwut8I5mPRAeqow
|
26
|
+
iZajmbchg/M3/lTommi54WM2OxjaXWZEncHG13acBh0/1SYYRccJW9Y=
|
27
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1,17 @@
|
|
1
|
+
-----BEGIN CERTIFICATE REQUEST-----
|
2
|
+
MIICuzCCAaMCAQAwdjELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5vd2hlcmVzMRAw
|
3
|
+
DgYDVQQHDAdTdG9tcGVyMRgwFgYDVQQKDA9TdG9tcGVyIFRlc3RpbmcxFDASBgNV
|
4
|
+
BAsMC1NTTCBUZXN0aW5nMRIwEAYDVQQDDAlNeSBDbGllbnQwggEiMA0GCSqGSIb3
|
5
|
+
DQEBAQUAA4IBDwAwggEKAoIBAQCvYq3qCys9pg7jSrK1ujKlq1/y8FqDIkz/BZ2+
|
6
|
+
JbtoYfVWLiKcK/k7opc3qjcXQM0Sl3ZzGSTFWXhFRV0rnN/p0lbXXLnKU3OhYnDf
|
7
|
+
Uq/7fWu3aHoIaOhKq1rp5qTNOJ0uVVERSDwrV6hVN0IRDOks53nTTMgunpJK3Itm
|
8
|
+
eb9i4HVJ1zdiTjpHesAvdYwocFCIJK566y+md2Bkdw3iwk7lYgX6JyBcU3KAFuav
|
9
|
+
9TVaqWpfYAUq2P6ppC2qxIE1/FGKfJ8MQOpAYYfsCmA5RC6w9nd5Aba/FdJlzWrk
|
10
|
+
IQVZU9lq5zfqzqOxz8Nw/CxAPRK/+YQyyoPG5T2qKP94nQMXAgMBAAGgADANBgkq
|
11
|
+
hkiG9w0BAQUFAAOCAQEAAY/U48PqKy3E2xn0bvY/4xgmOglmYhoGVxs9atObzL+M
|
12
|
+
NvQkKMX63MFID66yJUWU9cUAuBtb+RdUdP9gby0IME/3SH4EHanGQZ6+PK931WtH
|
13
|
+
TiKiE+LV2njxC8XTA7scbe5QnZwp04mTgiNfFnRLU3whfAWu9wKsU8t2LTpgaOX4
|
14
|
+
UYJrk7eaPdqSCDpx6Vf2Z5oCLka93te2NB8BvcxH2ISYiDQ5WdOpxbP8ngHkq3JQ
|
15
|
+
RJSHYYxr6BKIzLJP7MCrebKcrIE3QJ+/n1KAWl9M52m7rqmSBcevdM9lERgKvjwK
|
16
|
+
AYuVlQJs+mNbhN0OudSG0dNIJN+i2lHAWRz9FzAM9A==
|
17
|
+
-----END CERTIFICATE REQUEST-----
|
@@ -0,0 +1,72 @@
|
|
1
|
+
Certificate:
|
2
|
+
Data:
|
3
|
+
Version: 3 (0x2)
|
4
|
+
Serial Number: 2 (0x2)
|
5
|
+
Signature Algorithm: sha1WithRSAEncryption
|
6
|
+
Issuer: C=US, ST=Nowheres, L=Stomper, O=Stomper Testing, OU=CA Testing, CN=Stomper CA
|
7
|
+
Validity
|
8
|
+
Not Before: Feb 21 16:57:25 2011 GMT
|
9
|
+
Not After : Feb 18 16:57:25 2021 GMT
|
10
|
+
Subject: C=US, ST=Nowheres, O=Stomper Testing, OU=SSL Testing, CN=My Client
|
11
|
+
Subject Public Key Info:
|
12
|
+
Public Key Algorithm: rsaEncryption
|
13
|
+
Public-Key: (2048 bit)
|
14
|
+
Modulus:
|
15
|
+
00:af:62:ad:ea:0b:2b:3d:a6:0e:e3:4a:b2:b5:ba:
|
16
|
+
32:a5:ab:5f:f2:f0:5a:83:22:4c:ff:05:9d:be:25:
|
17
|
+
bb:68:61:f5:56:2e:22:9c:2b:f9:3b:a2:97:37:aa:
|
18
|
+
37:17:40:cd:12:97:76:73:19:24:c5:59:78:45:45:
|
19
|
+
5d:2b:9c:df:e9:d2:56:d7:5c:b9:ca:53:73:a1:62:
|
20
|
+
70:df:52:af:fb:7d:6b:b7:68:7a:08:68:e8:4a:ab:
|
21
|
+
5a:e9:e6:a4:cd:38:9d:2e:55:51:11:48:3c:2b:57:
|
22
|
+
a8:55:37:42:11:0c:e9:2c:e7:79:d3:4c:c8:2e:9e:
|
23
|
+
92:4a:dc:8b:66:79:bf:62:e0:75:49:d7:37:62:4e:
|
24
|
+
3a:47:7a:c0:2f:75:8c:28:70:50:88:24:ae:7a:eb:
|
25
|
+
2f:a6:77:60:64:77:0d:e2:c2:4e:e5:62:05:fa:27:
|
26
|
+
20:5c:53:72:80:16:e6:af:f5:35:5a:a9:6a:5f:60:
|
27
|
+
05:2a:d8:fe:a9:a4:2d:aa:c4:81:35:fc:51:8a:7c:
|
28
|
+
9f:0c:40:ea:40:61:87:ec:0a:60:39:44:2e:b0:f6:
|
29
|
+
77:79:01:b6:bf:15:d2:65:cd:6a:e4:21:05:59:53:
|
30
|
+
d9:6a:e7:37:ea:ce:a3:b1:cf:c3:70:fc:2c:40:3d:
|
31
|
+
12:bf:f9:84:32:ca:83:c6:e5:3d:aa:28:ff:78:9d:
|
32
|
+
03:17
|
33
|
+
Exponent: 65537 (0x10001)
|
34
|
+
X509v3 extensions:
|
35
|
+
X509v3 Basic Constraints:
|
36
|
+
CA:FALSE
|
37
|
+
Netscape Comment:
|
38
|
+
OpenSSL Generated Certificate
|
39
|
+
X509v3 Subject Key Identifier:
|
40
|
+
7A:FC:5D:4F:48:8F:41:43:EA:E5:A6:14:2D:30:19:E5:63:70:43:5C
|
41
|
+
X509v3 Authority Key Identifier:
|
42
|
+
keyid:7C:4F:50:BF:C6:57:97:6B:D9:1C:F1:92:EF:B5:66:47:94:79:15:74
|
43
|
+
|
44
|
+
Signature Algorithm: sha1WithRSAEncryption
|
45
|
+
75:80:be:12:d8:7d:64:78:1f:62:97:a9:cd:0a:84:89:15:43:
|
46
|
+
ca:5b:a3:72:77:73:f1:aa:06:59:15:75:0b:1b:7d:79:c3:9f:
|
47
|
+
d5:3d:e5:70:df:64:ec:a4:27:d9:a3:49:02:b0:75:89:bd:dc:
|
48
|
+
9b:c4:79:33:14:38:93:2b:d8:3c:01:e6:d0:2a:56:06:6a:ba:
|
49
|
+
49:56:5a:f7:6c:49:dd:b0:5c:49:be:68:09:7d:75:2e:9f:49:
|
50
|
+
ed:e1:1e:49:6b:f1:cc:1c:1c:be:1e:ac:a9:ee:44:7b:15:32:
|
51
|
+
e0:b1:a6:9c:48:a4:1c:5a:55:66:0f:86:95:c0:02:e8:b7:a8:
|
52
|
+
b9:9d
|
53
|
+
-----BEGIN CERTIFICATE-----
|
54
|
+
MIIDTzCCArigAwIBAgIBAjANBgkqhkiG9w0BAQUFADB2MQswCQYDVQQGEwJVUzER
|
55
|
+
MA8GA1UECAwITm93aGVyZXMxEDAOBgNVBAcMB1N0b21wZXIxGDAWBgNVBAoMD1N0
|
56
|
+
b21wZXIgVGVzdGluZzETMBEGA1UECwwKQ0EgVGVzdGluZzETMBEGA1UEAwwKU3Rv
|
57
|
+
bXBlciBDQTAeFw0xMTAyMjExNjU3MjVaFw0yMTAyMTgxNjU3MjVaMGQxCzAJBgNV
|
58
|
+
BAYTAlVTMREwDwYDVQQIDAhOb3doZXJlczEYMBYGA1UECgwPU3RvbXBlciBUZXN0
|
59
|
+
aW5nMRQwEgYDVQQLDAtTU0wgVGVzdGluZzESMBAGA1UEAwwJTXkgQ2xpZW50MIIB
|
60
|
+
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr2Kt6gsrPaYO40qytboypatf
|
61
|
+
8vBagyJM/wWdviW7aGH1Vi4inCv5O6KXN6o3F0DNEpd2cxkkxVl4RUVdK5zf6dJW
|
62
|
+
11y5ylNzoWJw31Kv+31rt2h6CGjoSqta6eakzTidLlVREUg8K1eoVTdCEQzpLOd5
|
63
|
+
00zILp6SStyLZnm/YuB1Sdc3Yk46R3rAL3WMKHBQiCSueusvpndgZHcN4sJO5WIF
|
64
|
+
+icgXFNygBbmr/U1WqlqX2AFKtj+qaQtqsSBNfxRinyfDEDqQGGH7ApgOUQusPZ3
|
65
|
+
eQG2vxXSZc1q5CEFWVPZauc36s6jsc/DcPwsQD0Sv/mEMsqDxuU9qij/eJ0DFwID
|
66
|
+
AQABo3sweTAJBgNVHRMEAjAAMCwGCWCGSAGG+EIBDQQfFh1PcGVuU1NMIEdlbmVy
|
67
|
+
YXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUevxdT0iPQUPq5aYULTAZ5WNwQ1ww
|
68
|
+
HwYDVR0jBBgwFoAUfE9Qv8ZXl2vZHPGS77VmR5R5FXQwDQYJKoZIhvcNAQEFBQAD
|
69
|
+
gYEAdYC+Eth9ZHgfYpepzQqEiRVDylujcndz8aoGWRV1Cxt9ecOf1T3lcN9k7KQn
|
70
|
+
2aNJArB1ib3cm8R5MxQ4kyvYPAHm0CpWBmq6SVZa92xJ3bBcSb5oCX11Lp9J7eEe
|
71
|
+
SWvxzBwcvh6sqe5EexUy4LGmnEikHFpVZg+GlcAC6LeouZ0=
|
72
|
+
-----END CERTIFICATE-----
|