Optionally use noise padding
This commit is contained in:
parent
4c4131d4b1
commit
3aef7abc49
|
@ -29,7 +29,10 @@
|
|||
(for/list [(i (in-range 0 len chunk-size))]
|
||||
(subbytes bs i (min (+ i chunk-size) len))))
|
||||
|
||||
(define (fragment bs [f values])
|
||||
(define (fragment bs0 padding [f values])
|
||||
(define bs (if (zero? padding)
|
||||
bs0
|
||||
(bytes-append bs0 (make-bytes (modulo (- (bytes-length bs0)) padding) #x80))))
|
||||
(if (> (bytes-length bs) PACKET-LIMIT)
|
||||
(Packet-fragmented (map f (chunk-bytes bs PACKET-LIMIT)))
|
||||
(Packet-complete (f bs))))
|
||||
|
@ -39,13 +42,15 @@
|
|||
#:acceptor-ref acceptor-ref
|
||||
#:import import-handler
|
||||
#:preshared-keys [psks #f]
|
||||
#:pattern [pattern #f])
|
||||
#:pattern [pattern #f]
|
||||
#:padding [padding 0])
|
||||
(noise* #:role 'initiator
|
||||
#:service-selector service-selector
|
||||
#:remote-static-pk remote-static-pk
|
||||
#:import import-handler
|
||||
#:preshared-keys psks
|
||||
#:pattern pattern
|
||||
#:padding padding
|
||||
(lambda (set-peer-session! handle-message)
|
||||
(at acceptor-ref
|
||||
(assert (Resolve (Step (NoiseStepType) service-selector)
|
||||
|
@ -65,13 +70,15 @@
|
|||
#:export initial-ref
|
||||
#:observer observer
|
||||
#:preshared-keys [psks #f]
|
||||
#:pattern [pattern #f])
|
||||
#:pattern [pattern #f]
|
||||
#:padding [padding 0])
|
||||
(noise* #:role 'responder
|
||||
#:service-selector service-selector
|
||||
#:static-keypair static-keypair
|
||||
#:export initial-ref
|
||||
#:preshared-keys psks
|
||||
#:pattern pattern
|
||||
#:padding padding
|
||||
(lambda (set-peer-session! handle-message)
|
||||
(at observer
|
||||
(assert (Resolved-accepted
|
||||
|
@ -91,6 +98,7 @@
|
|||
#:import [import-handler #f]
|
||||
#:preshared-keys [psks #f]
|
||||
#:pattern [pattern #f]
|
||||
#:padding [padding 0]
|
||||
f)
|
||||
(define H (Noise-*-25519_ChaChaPoly_BLAKE2s
|
||||
(or pattern "NK")
|
||||
|
@ -108,7 +116,7 @@
|
|||
|
||||
(define (start-relay css)
|
||||
(set!-values (encrypt! decrypt!) (css->procedures css))
|
||||
(run-relay #:packet-writer (lambda (bs) (send! peer-session (fragment bs encrypt!)))
|
||||
(run-relay #:packet-writer (lambda (bs) (send! peer-session (fragment bs padding encrypt!)))
|
||||
#:setup-inputs (lambda (tr)
|
||||
(set! relay tr)
|
||||
(for [(m (in-list (reverse buffered-inputs-rev)))]
|
||||
|
|
Loading…
Reference in New Issue