arachni-rpc-em 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,68 @@
1
+ require File.join( File.expand_path( File.dirname( __FILE__ ) ), '../../../', 'spec_helper' )
2
+
3
+ class SSL
4
+ include Arachni::RPC::EM::SSL
5
+
6
+ def initialize( opts )
7
+ @opts = opts
8
+ end
9
+ end
10
+
11
+ describe Arachni::RPC::EM::SSL do
12
+
13
+ before( :all ) do
14
+ @ssl = SSL.new( rpc_opts_with_ssl_primitives )
15
+ end
16
+
17
+ describe "#ca_store" do
18
+ it "should return an OpenSSL::X509::Store" do
19
+ @ssl.ca_store.class.should == OpenSSL::X509::Store
20
+ end
21
+ end
22
+
23
+ describe "#ssl_verify_peer" do
24
+ it "should return true on valid peer cert" do
25
+ cert = rpc_opts_with_ssl_primitives[:ssl_cert]
26
+ @ssl.ssl_verify_peer( File.read( cert ) ).should be_true
27
+ end
28
+
29
+ it "should return false on invalid peer cert" do
30
+ cert = rpc_opts_with_invalid_ssl_primitives[:ssl_cert]
31
+ @ssl.ssl_verify_peer( File.read( cert ) ).should be_false
32
+ end
33
+ end
34
+
35
+ describe "#are_we_a_client?" do
36
+
37
+ context "when run from inside a client" do
38
+ it "should return true" do
39
+ opts = rpc_opts_with_ssl_primitives.merge( :role => :client )
40
+ SSL.new( opts ).are_we_a_client?.should be_true
41
+ end
42
+ end
43
+
44
+ context "when run from inside a server" do
45
+ it "should return false" do
46
+ opts = rpc_opts_with_ssl_primitives.merge( :role => :server )
47
+ SSL.new( opts ).are_we_a_client?.should be_false
48
+ end
49
+ end
50
+
51
+ end
52
+
53
+ describe "#ssl_opts?" do
54
+ context "when all SSL opts have been provided" do
55
+ it "should return true" do
56
+ @ssl.ssl_opts?.should be_true
57
+ end
58
+ end
59
+
60
+ context "when not all SSL opts have been provided" do
61
+ it "should return false" do
62
+ opts = rpc_opts_with_ssl_primitives.merge( :ca_cert => nil )
63
+ SSL.new( opts ).are_we_a_client?.should be_false
64
+ end
65
+ end
66
+ end
67
+
68
+ end
@@ -0,0 +1,39 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ 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
39
+ -----END CERTIFICATE-----
@@ -0,0 +1,39 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ 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
39
+ -----END CERTIFICATE-----
@@ -0,0 +1,39 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIGzjCCBLagAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJGTzEM
3
+ MAoGA1UECBMDZm9vMQwwCgYDVQQHEwNmb28xDDAKBgNVBAoTA2ZvbzEMMAoGA1UE
4
+ CxMDZm9vMQwwCgYDVQQDEwNmb28xGjAYBgkqhkiG9w0BCQEWC2Zvb0Bmb28uZm9v
5
+ MB4XDTExMDkyNjE0MDEzM1oXDTEyMDkyNTE0MDEzM1owgYMxCzAJBgNVBAYTAkZP
6
+ MQwwCgYDVQQIEwNmb28xDDAKBgNVBAcTA2ZvbzEMMAoGA1UEChMDZm9vMQwwCgYD
7
+ VQQLEwNmb28xETAPBgNVBAMTCHNvbWVuYW1lMSkwJwYJKoZIhvcNAQkBFhpzb21l
8
+ bmFtZUBzb21lbmFtZS5zb21lbmFtZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
9
+ AgoCggIBAL0r5N/tveIx+Mvuwx5R1rFuK6I8udjkzj7N5zFs/JNsHA/9pVfEX6Y4
10
+ NPlER/0MvPUNfX6quuAN3IdEW1g7ond/fuI4iARY/TSgPipIn6jk4v6Y2A6nOmUp
11
+ O/32JWZBcM3IF0qMFGfYOq5+D20iWc4l/wPkcHz46/x8Qx3bnncXJix2M/AS9RwN
12
+ Kt26Ue5tG8sPY/ckMsvMbfMQ+R+15k1x6RAnBIHeh8QsFlDFBGT+EmKzDgCI41zN
13
+ akKiS+ZvJy2byKYT/r0P47Rzx6YP52+rIVh1SlkWwjD6EbVcnvDcW52rDrcqtsSg
14
+ uqiZfr+2Td+iOQBtUS2Y5htcjdipRaVLLoCY0qwX6i4JKGiL6fPVTgIUReZPFdk7
15
+ CHVCVAAEDl3yGLe6wpqGonKk6JjBZByiW3EE9T8f3uxS3pxD6BitpVCzwYiAJnFr
16
+ DvV0xNBLriSJ+Ebcc7f0ng+L7CPO9C8ILX+vIfToURhrup4+vn7W4pyft3b588O2
17
+ XBcax+XyBn1aQN6pwZrT/9wv85J94A/WBYkOvPl3Rv2uwjlzwfR/owLVPJkbowgF
18
+ iUGQz9vl/0C+KcWkyjnXKXxq2EK7kszBH5m3vgDz2j3mMBGv0xfTZmDVM+Qs12xv
19
+ wMwIfsOxo1oMmI6mWSx3NsJqP89ui650WAqORsWZ6O0jVv64tlnXAgMBAAGjggFe
20
+ MIIBWjAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIEsDArBglghkgBhvhCAQ0E
21
+ HhYcVGlueUNBIEdlbmVyYXRlZCBDZXJ0aWZpY2F0ZTAdBgNVHQ4EFgQUililQx5n
22
+ hJGu4Zx3C8kDJEU08ogwgaEGA1UdIwSBmTCBloAUX93JoFY2qeY+HVPZ+jAIbA/Y
23
+ rkGhc6RxMG8xCzAJBgNVBAYTAkZPMQwwCgYDVQQIEwNmb28xDDAKBgNVBAcTA2Zv
24
+ bzEMMAoGA1UEChMDZm9vMQwwCgYDVQQLEwNmb28xDDAKBgNVBAMTA2ZvbzEaMBgG
25
+ CSqGSIb3DQEJARYLZm9vQGZvby5mb2+CCQCmSX0QNZkjADAWBgNVHRIEDzANgQtm
26
+ b29AZm9vLmZvbzAlBgNVHREEHjAcgRpzb21lbmFtZUBzb21lbmFtZS5zb21lbmFt
27
+ ZTALBgNVHQ8EBAMCBaAwDQYJKoZIhvcNAQEFBQADggIBAFlzE1hgfZ6Zhl8RpckD
28
+ 0NDEZFAij+gQl91gcgAnkOE70JxbBiW3LXtdQvdNNpOUUdi10+UtbRyM1XayS7tQ
29
+ v/yHvfTINtMXazDQiG+ClcCSapjAFhMJhA7HWMtZLtzXb/Pox2JciGdilbyPeHTb
30
+ xitlun85TuTSseOkriND8OnjFolOBb/713adKE/p/UEbqZ9vbMyMgxOgemdPKKSB
31
+ H8k/mdQtMbcK7Q01Z/3UMDyxiVoQk2x8SqG4NxKKTRhKN4U8DKCGO8b4awgQo+je
32
+ mc01hW60ScVhBR+ha8NkvmReUm/pvIrYdaHnyJxwlY+RjIn2Y3OBlvBHkOVBCTJo
33
+ MVHqVQGksEQH/U+zlcWrv8H/1JOhdnq4lXnWkFvOBRUVSXF3vw9q4aMYMB1bagAU
34
+ ykciVW367xwj0HMzfAKT09uo0BhyqUuLec4/ksOeDGxLRn5KdrVwAp6b+quBHbkx
35
+ BCGdLvBVxgx11E+YV+WbY0pvNNdqpsKq9oZxOLnTQek8YJ317WSzUeUPOT5zu4sM
36
+ /B/i43wDiFWV1EcV8gEAy72l7jXi3++JbN56Cd03DML/BxSmfWXwrT3hKDP9mG5+
37
+ X4N8iCT+NBIMDYX1EAiBfD7ioxDpIv5yu+WNhTH7qsDPAE0Q3aTd1Un1Lkn7F/51
38
+ bKDKa/6PCJlZOkZGTU7wxaCy
39
+ -----END CERTIFICATE-----
@@ -0,0 +1,51 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ 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
51
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,51 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIJKQIBAAKCAgEAxFzl+COunZcbHqWMb63KUi8NeEHzzf7CfLPBRrpZCtBsZalZ
3
+ 1YReVVeePA2Hvos/ErzxmWearaPjN+Z8sZHL2jGg05XjcGiZFG33oEE04bzXOKnr
4
+ Koc1D/f4iCLcG5AxBFIzHjcJS86D4gb2yypcVRCHZ7qj/FpTfyVXJYVn8ltC90Zm
5
+ qvhnX0xyxekGnzBnpfK4fflpTkPvcC5nB40/MejSp73Nkw8df/fmXRQsKjnEA6bt
6
+ LvFYguIJ25VocHpks1AxyArtw2P21yL33oXH1mxyq1ngdJaO9auofIFWYrpwIXaC
7
+ yf+vfIC+qaDnpLuFknBDHXJ90QTMuJEQvHu+qSsWYZC93DZj4pBomJsTAlFtaePV
8
+ TrbeJM2diL92/CJmO4GFQTc6If5x4M+i+6YJB5GxmQKBXmBheWVookfQ5ngh6EtX
9
+ uoh8uqM4/qn80Er8tBdGgMQGkZfWywar15z7Xgi8rAbPSILVThxZatj8q+BH73T/
10
+ hEd7eGMABSEAZqrMQ6jA5uawklZr8GZRAh/Pgul5wL2k+cHnK1sdHS6IXq1qHEfB
11
+ HuQxBbisexYfwnmNuIMVMXHEsm6yH/UzauVz/N/8RZVQqpx1CseOjjVlLwB1eSlC
12
+ do7OfSs1UcoGvMUkzZcx9c+nJminrRRkfF+YQhx+h39aO51VGvdeNbANIYcCAwEA
13
+ AQKCAgAg7CJylCj2qxsU7FS7dLvzQ4hSnVwvMYOSPOEu5pd/RKqn8Njq/6KBVItn
14
+ Li2QOPB+R8eKHODGNDAoczB85SD0mFWKpBraAe+IiVd3OveO0YaULYkMPFcdMkot
15
+ KQsWY/qT6uQ/MKMSXrGl99zw+003xemt7pEIAmz1aGFQHSnsbHix1M/p4nQSelLT
16
+ 89n0Xr1CCYv9MxAA20sN1/nWPkxWJd8L2Lra6THc/sdU28j722uN4TLrJ/PbHeLh
17
+ Og+krCCuH8f47jwnAl+kemxslqmGvfAL4qnLYmLdtcYt+dFuBCxAsAoFrCTUDxHo
18
+ ht3PtNEUWFYoXcXSgaeBWnEf6O9ySg1g4zD4rqhxFURNUMV0xp8RnWC+j3EHNlOH
19
+ TInYW5cfpk39Dmc5OwOnw1keVkjlYoiNMRir8HJBw3f/00Ug3+F9URgnIv620+8C
20
+ 7evYTxs1G522RPWxxEFxpJhtKEZ9kKRBb6iOEgYo5Lwqs/sxXI+HNFt0Qm206otY
21
+ 5IBnoGUi43/TNiUHs9BXjZdWLdV1bE1z66aDnoid8vuJgOwBGaNsWqx8iR5sFOpW
22
+ ZRUxGcAfc1XOe3/Muv8kSiGARJRT/NLECUwSy07zonBwwDZMGKhCodjhpqbDHI53
23
+ GjlNzFcHTlXWgWV6MIQRmmN2q7TAFFAyW8dP/s6cgJOyhcdQwQKCAQEA9o2/8pIa
24
+ Yym+3viTmvwnZpHMP+rwYJ3zeRaVWvClYqreIvg4X+aNljfU6vJDoNXnrrNaexPT
25
+ mrEmkr1NWaQS73isJJTk3ZZw79uxT/L43Bziyqe15gd02ahTOb+RooSRwOzFvZM8
26
+ ycxVpGi88Wyy3rmdgtCj/wTqHdzrQ8EISQWGEacFdR0jsBA/TaAA8/l8YcQibfs4
27
+ 0RkVaoQLPK7aKx6L2021EF6nz2bGsvchW+BmEgrSiuexp0xIOkMPDmzq2B5PC+09
28
+ 8771Zlifm/yfTsjivZmBFM4mE8l/Qld9yu7QfW4gJUvhMuMOHTqqd1hdkOQ3VJDn
29
+ VV+IQn14mmlvvwKCAQEAy+LdzpZ3L727vlvsR4DfS7BGloi0QZJTo90F197Z1mPI
30
+ CqOx+fzTckVZ6zF4wacoMbIcwUHPhbUeONxGORRoDy0TFiN4TvfztyR7LkQ4qErM
31
+ M3xcR04TeK2hsItP7wJzZSAXBx1YXDW6bZIx9HjUYxubAv0wqhVHKIVW0NKcJmUX
32
+ ab8MRC98m+to08E5tjxGa0/Yz3dyWtpIXcj1slm0F5PVzaGP5+Hm63PZ3UAn/X9B
33
+ xdED0n6AG6WaYT71F+AyJ8SYOW01IXK623pC1IPEL5Gr5iBZq2I+mQPrrQuZbdf3
34
+ Mp7pKRlMtlI5a+inVmqsU07brU9wSF1P/+SsdjzAOQKCAQEAjCi43aTA625n20lk
35
+ X87Idz6a5hsg20vvhP6ZmUEEQ7ru3OJO6fWet661k3p1h5ESS/YZka4LtPzP+Ms0
36
+ laj4OrpW4dTi5jUHrtMtUU3GuxqQsrP0a/gBLVrLNSD6IXFLimkPYF27SNyoMvZ3
37
+ sqcgaA0MxbjmAatBjAhylem+VASX2qEgMRuHlicmVXKIGCnT06A0EmGmQvgHfK3j
38
+ 1XNxAuIyj1D1hYDJ1NWQT1y90gUXAVq1pdFg5MIwrS5B+Olh98oDFbygY1hDGRN4
39
+ aKyLw7Xfb/k7sCAg9U6u0X/7OsnYK/XWwF0KgGsjMuqOzZmmVx/ldGWLnLTaOTIq
40
+ xVz68QKCAQAao7rdilVqXH0SY0pdEV6bsh2W/6elxau+BlwEF68YzxLNKRRRGJK8
41
+ JImaLG2dx+x9icsuCR5HVyHqxgU64gqyqO4Mf3fxwX4LmO2rXuiUPKmvtHkOLApp
42
+ Qy6UNa+tCAHx3Z6EpHXuHmsMdASo77y4clvvqQtZvcv9ZGayhEI41g6YF4lPw3Ch
43
+ osGgoWecAwYkcVtfyDid3FWGQ4Ku2f+o8P0HkCuQXbjhXNLDkOVovt7mLOg18adl
44
+ dV7Vg/dcNkP3ZD2Li1Rc2XPGx5PB1rGkkYEHYYS12vFY5uU9R/21F3nKGG9YmmCm
45
+ ldnA2rY6mVeIzw3u+Ckwm1ifk85g6JEpAoIBAQDtscJiVYuCkuOtHTYzTkZx0sRb
46
+ ZVkswbkleeQpG6qgoQXuqAYnLm5GGbix+/9DLtiz8PWOTQgZnCBWNxgIZXWBGhmG
47
+ J9J3ss9HCXJoIo1DHZVqGMy4Rf5l5Pzq3gaUzHC/XQU67qatAyie2D8bFnFPb8LK
48
+ J0ELcCb0XjEIEvt4TRiX6bnok45r42H7eRLvb4ex8zgiXBKoW903ZwvF9XrxAmyl
49
+ lkSwQfmRVbxzainIgRs2YAa6+7+VWlhxzHqkPrEot9Eox0b59jWfOcMPtOlaaE2o
50
+ yxrk1r0IspUPjYWSjCkDYCLrDBkSOw12CZcfbGSZ5u7mTMkHBHuDpmCXrILO
51
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,39 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ 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
39
+ -----END CERTIFICATE-----
@@ -0,0 +1,51 @@
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ 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
51
+ -----END RSA PRIVATE KEY-----
@@ -0,0 +1,3 @@
1
+ require_relative 'server'
2
+
3
+ start_server( rpc_opts )[1].join
@@ -0,0 +1,61 @@
1
+ =begin
2
+ Arachni-RPC
3
+ Copyright (c) 2011 Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
4
+
5
+ This is free software; you can copy and distribute and modify
6
+ this program under the term of the GPL v2.0 License
7
+ (See LICENSE file for details)
8
+
9
+ =end
10
+
11
+ $cwd = cwd = File.expand_path( File.dirname( __FILE__ ) )
12
+ require File.join( cwd, '../../lib/arachni/rpc/', 'em' )
13
+ require File.join( cwd, '../', 'spec_helper' )
14
+
15
+ class Parent
16
+ def foo( arg )
17
+ return arg
18
+ end
19
+ end
20
+
21
+ class Test < Parent
22
+
23
+ # in order to make inherited methods accessible you've got to explicitly
24
+ # make them public
25
+ private :foo
26
+ public :foo
27
+
28
+ #
29
+ # Uses EventMachine to call the block asynchronously
30
+ #
31
+ def async_foo( arg, &block )
32
+ ::EM.schedule {
33
+ ::EM.defer {
34
+ block.call( arg ) if block_given?
35
+ }
36
+ }
37
+ end
38
+
39
+ end
40
+
41
+ def start_server( opts, do_not_start = false )
42
+
43
+ server = Arachni::RPC::EM::Server.new( opts )
44
+
45
+ server.add_async_check {
46
+ |method|
47
+ #
48
+ # Must return 'true' for async and 'false' for sync.
49
+ #
50
+ # Very simple check here...
51
+ #
52
+ 'async' == method.name.to_s.split( '_' )[0]
53
+ }
54
+
55
+ server.add_handler( 'test', Test.new )
56
+
57
+ t = nil
58
+ t = Thread.new { server.run } if !do_not_start
59
+
60
+ return server, t
61
+ end