Ticket #1732: keytest.scm

File keytest.scm, 1.0 KB (added by Ariela Wenner, 5 years ago)
Line 
1(import (chicken format)
2 zmq srfi-18)
3
4;; server keypair
5(define-values (spk ssk)
6 (curve-keypair))
7
8;; client keypair
9(define-values (cpk csk)
10 (curve-keypair))
11
12(define (spin-server)
13 (thread-start!
14 (lambda ()
15 (let ((socket (make-socket 'rep)))
16 (socket-option-set! socket 'curve/server 1)
17 (socket-option-set! socket 'curve/secretkey ssk)
18 (printf "Server socket setup!~n")
19 (bind-socket socket "tcp://*:5050")
20 (let ((msg (receive-message* socket)))
21 (printf "Received ~a, responding.~n" msg)
22 (send-message socket "pong!")
23 (close-socket socket))))))
24
25(define (hit-server msg)
26 (let ((socket (make-socket 'req)))
27 (socket-option-set! socket 'curve/serverkey spk)
28 (socket-option-set! socket 'curve/secretkey csk)
29 (socket-option-set! socket 'curve/pubkey cpk)
30 (connect-socket socket "tcp://192.168.0.7:5050")
31 (send-message socket msg)
32 (printf "Sent message, waiting for response...~n")
33 (printf "Got response: ~a~n" (receive-message* socket))
34 (close-socket socket)))