~edwargix/tallyard

4132a22436ca18a48672d47fb3884b86cbd7cada — David Florness 5 years ago f172a5d
Signature's verifying!
3 files changed, 17 insertions(+), 6 deletions(-)

M crypto.rkt
M main.rkt
M server.rkt
M crypto.rkt => crypto.rkt +1 -1
@@ 19,6 19,6 @@
          (gen))))

  (let-values ([(p q λn) (gen)])
    (list (* p q) ; n
    (cons (* p q) ; n
          (modular-inverse e λn) ; d
          )))

M main.rkt => main.rkt +11 -2
@@ 3,6 3,7 @@
(require racket/random)
(require net/url)
(require json)
(require math/number-theory)
(require "crypto.rkt")

(define/contract (vohea-url path)


@@ 44,5 45,13 @@

(define M (modulo (* m (expt r e)) n))

(define S (port->bytes (post-pure-port (vohea-url "/sign")
                                       (integer->bytes M (/ keylen 8) #f))))
(define S (bytes->integer
           (port->bytes (post-pure-port (vohea-url "/sign")
                                        (integer->bytes M (/ keylen 8) #f)))
           #f))

(define s (modulo (* S (modular-inverse r n)) n))

(displayln (list (equal? m (modular-expt s e n))
                 m
                 (modular-expt s e n)))

M server.rkt => server.rkt +5 -3
@@ 6,6 6,7 @@
(require json)
(require "crypto.rkt")
(require binaryio)
(require math/number-theory)

(define cands (list "ohea" "rtsn" "qfuy"))
(define k (gen-key))


@@ 26,9 27,10 @@

(define (sign req)
  (println (request-post-data/raw req))
  (println (request-bindings req))
  (response/xexpr
   '(html (body (p "hello there")))))
  (let ([m (bytes->integer (request-post-data/raw req) #f)])
    (response/full
     200 #f (current-seconds) #"application/octet-stream"
     empty (list (integer->bytes (modular-expt m (cdr k) (car k)) (/ keylen 8) #f)))))

(define (key req)
  (response/full