File: gss_client.rb

package info (click to toggle)
ruby-gssapi 1.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 216 kB
  • sloc: ruby: 770; makefile: 2
file content (26 lines) | stat: -rw-r--r-- 625 bytes parent folder | download | duplicates (3)
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
require 'gssapi'
require 'base64'
require 'socket'

host = 'example.org'
service  = 'host'

sock = TCPSocket.new(host, 8082)

cli = GSSAPI::Simple.new(host, service)
tok = cli.init_context
stok = Base64.strict_encode64(tok)

sock.write("#{stok}\n") # send initial token
stok = sock.gets.chomp  # get back continuation token
ctx = cli.init_context(Base64.strict_decode64(stok.chomp)) # complete security context
puts "Connection #{(ctx ? 'succeeded' : 'failed')}"

begin
  print "> "
  msg = STDIN.gets.chomp
  emsg = cli.wrap_message(msg)
  sock.write("#{Base64.strict_encode64(emsg)}\n")
end while msg != 'exit'

sock.close