gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnunet-scheme] 03/03: fs/network: Define analyse-request-loc-signature.


From: gnunet
Subject: [gnunet-scheme] 03/03: fs/network: Define analyse-request-loc-signature.
Date: Wed, 30 Nov 2022 11:50:34 +0100

This is an automated email from the git hooks/post-receive script.

maxime-devos pushed a commit to branch master
in repository gnunet-scheme.

commit 0ea9aa3acd870f7f0e3abda0cb984337e8d557fe
Author: Maxime Devos <maximedevos@telenet.be>
AuthorDate: Wed Nov 30 11:50:00 2022 +0100

    fs/network: Define analyse-request-loc-signature.
    
    Counterpart to construct-request-loc-signature.
---
 gnu/gnunet/fs/network.scm | 32 ++++++++++++++++++++++++++------
 1 file changed, 26 insertions(+), 6 deletions(-)

diff --git a/gnu/gnunet/fs/network.scm b/gnu/gnunet/fs/network.scm
index 981ecac..4b3b01c 100644
--- a/gnu/gnunet/fs/network.scm
+++ b/gnu/gnunet/fs/network.scm
@@ -19,22 +19,25 @@
 
 ;; TODO: untested
 (define-library (gnu gnunet fs network)
-  (export construct-request-loc-signature)
-  (import (only (rnrs base) define define-syntax quote)
+  (export construct-request-loc-signature analyse-request-loc-signature)
+  (import (only (rnrs base) define define-syntax quote values)
          (only (guile) begin define*)
          (only (gnu gnunet utils bv-slice)
                make-slice/read-write slice-copy! slice-length )
+         (only (gnu gnunet utils hat-let) let^)
          (only (gnu extractor enum) value->index symbol-value)
          (only (gnu gnunet message protocols) message-type)
-         (only (gnu gnunet fs struct) /:msg:fs:request-loc-signature)
+         (only (gnu gnunet fs struct)
+               /content-hash-key /:msg:fs:request-loc-signature)
          (only (gnu gnunet fs uri)
                chk-key ;; TODO rename
-               chk-query)
+               chk-query
+               make-content-hash-key/share)
          (only (gnu gnunet hashcode)
                hashcode:512->slice)
          (only (gnu gnunet utils cut-syntax) cut-syntax)
          (only (gnu gnunet netstruct syntactic)
-               set%! sizeof select))
+               set%! sizeof select read%))
   (begin
     ;; GNUNET_SIGNATURE_PURPOSE_PEER_PLACEMENT,
     ;; (see gnunet-signatures/gnunet_signatures.rst)
@@ -67,4 +70,21 @@ expiring at @var{expiration-time} (TODO type), for 
@var{purpose}
        (hashcode:512->slice (chk-query content-hash-key))
        (select* '(content-hash-key query)))
       (set%!* '(file-length) file-length)
-      s)))
+      s)
+
+   (define (analyse-request-loc-signature message)
+     "Return the file length, content hash key, expiration time (TODO type)
+and signature purpose corresponding to the 
@code{/:msg:fs:request-loc-signature}
+message @var{message}."
+     (let^ ((! file-length
+              (read% /:msg:fs:request-loc-signature '(file-length) message))
+           (! content-hash-key
+              (make-content-hash-key/share
+               (select /:msg:fs:request-loc-signature
+                       '(content-hash-key) message)))
+           (! expiration-time
+              (read% /:msg:fs:request-loc-signature
+                     '(expiration-time) message))
+           (! purpose
+              (read% /:msg:fs:request-loc-signature '(purpose) message)))
+          (values file-length content-hash-key expiration-time purpose)))))

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]