msva.rb
authormike castleman <m@mlcastle.net>
Sat, 9 Jan 2010 23:35:05 +0000 (18:35 -0500)
committermike castleman <m@mlcastle.net>
Sat, 9 Jan 2010 23:35:05 +0000 (18:35 -0500)
msva.rb [new file with mode: 0644]

diff --git a/msva.rb b/msva.rb
new file mode 100644 (file)
index 0000000..ca4be59
--- /dev/null
+++ b/msva.rb
@@ -0,0 +1,41 @@
+#!/usr/bin/env ruby
+
+require 'rubygems'
+
+require 'json'
+require 'openssl'
+require 'sinatra'
+
+get '/' do
+  content_type 'text/plain; charset=us-ascii'
+
+  "Hello from your friendly MSVA."
+end
+
+post '/reviewcert' do
+  content_type "application/json"
+
+  begin
+    params = JSON.parse(request.body.string)
+  rescue JSON::ParserError
+    halt({ :valid => false, :message => "couldn't parse JSON query"})
+  end
+
+  unless (params["pkc"] && params["pkc"]["type"] == "x509der")
+    halt({ :valid => false, :message => "pkc not present or of not-understood type" }.to_json)
+  end
+
+  data = params["pkc"]["data"].pack("C*")
+  pkey = OpenSSL::X509::Certificate.new(data).public_key
+
+  { :valid => false, :message => "Just testing!!" }.to_json
+end
+
+get '/noop' do
+  { :available => true, :protoversion => 1, :server => "MSVA-Ruby 0.00001" }.to_json
+end
+
+post '/extracerts' do
+  # TODO: fill in if we need to do so
+  not_found
+end