gnunet-scalarproduct.1 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. .\" This file is part of GNUnet.
  2. .\" Copyright (C) 2001-2019 GNUnet e.V.
  3. .\"
  4. .\" Permission is granted to copy, distribute and/or modify this document
  5. .\" under the terms of the GNU Free Documentation License, Version 1.3 or
  6. .\" any later version published by the Free Software Foundation; with no
  7. .\" Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
  8. .\" copy of the license is included in the file
  9. .\" FDL-1.3.
  10. .\"
  11. .\" A copy of the license is also available from the Free Software
  12. .\" Foundation Web site at http://www.gnu.org/licenses/fdl.html}.
  13. .\"
  14. .\" Alternately, this document is also available under the General
  15. .\" Public License, version 3 or later, as published by the Free Software
  16. .\" Foundation. A copy of the license is included in the file
  17. .\" GPL3.
  18. .\"
  19. .\" A copy of the license is also available from the Free Software
  20. .\" Foundation Web site at http://www.gnu.org/licenses/gpl.html
  21. .\"
  22. .\" SPDX-License-Identifier: GPL3.0-or-later OR FDL1.3-or-later
  23. .\"
  24. .Dd August 8, 2013
  25. .Dt GNUNET-SCALARPRODUCT 1
  26. .Os
  27. .Sh NAME
  28. .Nm gnunet-scalarproduct
  29. .Nd compute a vectorproduct
  30. .Sh SYNOPSIS
  31. .Nm
  32. .Op Fl e Ar ELEMENTS | Fl -elements= Ns Ar ELEMENTS
  33. .Op Fl m Ar MASK | Fl -mask= Ns Ar MASK
  34. .Op Fl k Ar KEY | Fl -key= Ns Ar KEY
  35. .Op Fl c Ar FILENAME | -config= Ns Ar FILENAME
  36. .Op Fl p Ar PEERID | Fl -peer= Ns Ar PEERID
  37. .Op Fl h | -help
  38. .Op Fl L Ar LOGLEVEL | Fl -loglevel= Ns Ar LOGLEVEL
  39. .Op Fl v | -version
  40. .Sh DESCRIPTION
  41. .Nm
  42. enables you to compute a vectorproduct across two peers
  43. .Sy Alice
  44. and
  45. .Sy Bob .
  46. .Pp
  47. A client can issue one of two messages to its service:
  48. .Bl -enum -width 3n -offset indent
  49. .It
  50. A request to compute a vectorproduct with another peer (Alice)
  51. .It
  52. Elements to support a peer in computing a vectorproduct (Bob)
  53. .El
  54. .Pp
  55. Both requests must share the same SID, which can be an arbitrary
  56. string identifying the session. SIDs should be unique, however it is
  57. sufficient to guarantee the uniqueness of the tuple element count and
  58. session ID.
  59. .Pp
  60. Alice's client must supply the ASCII encoded peer ID of bob's
  61. service, it will internally be checked by the client for
  62. validity. Invalid values here result in the client or the service
  63. failing the session.
  64. .Pp
  65. Elements are handed over as signed decimal integers, the element count
  66. supplied by Alice and Bob must match. Alice can also
  67. supply a mask for these values to her service, which allows partial
  68. vector products to be computed across the vector. Elements can be
  69. masked by setting their the corresponding mask element to zero, any
  70. other value means the element will not be masked. Alice's
  71. client will also mask all 0-values to avoid information leakage to
  72. Bob.
  73. .Pp
  74. The protocol by definition relies on Alice and Bob being
  75. benign, thus Bob can arbitrarily falsify his information. Both
  76. peers collaborate to achieve a correct result.
  77. .Pp
  78. The options are as follows:
  79. .Bl -tag -width indent
  80. .It Fl e Ar ELEMENTS | Fl -elements= Ns Ar ELEMENTS
  81. The element-vector the vectorproduct should be computed over in
  82. signed decimal form, eg: "42,1,-3,3,7".
  83. Zero value elements will be automatically masked.
  84. .It Fl m Ar MASK | Fl -mask= Ns Ar MASK
  85. Elements in the vector can be masked.
  86. There must be at least two elements left in the vector to
  87. compute a vectorproduct.
  88. Non-Zero values indicate an element is not maskes.
  89. .It Fl k Ar KEY | Fl -key= Ns Ar KEY
  90. The session key, a shared string of arbitrary length from which
  91. the SID will be generated.
  92. .It Fl c Ar FILENAME | Fl -config= Ns Ar FILENAME
  93. Use the configuration file FILENAME.
  94. .It Fl p Ar PEERID | Fl -peer= Ns Ar PEERID
  95. The remote peer's ASCII-armored gnunet-peer ID as output by
  96. .Xr gnunet-peerinfo 1 .
  97. If this option is not given, the peer will take the Bob's role.
  98. .It Fl h | -help
  99. Print short help on options.
  100. .It Fl L Ar LOGLEVEL | Fl -loglevel= Ns Ar LOGLEVEL
  101. Use LOGLEVEL for logging.
  102. Valid values are DEBUG, INFO, WARNING and ERROR.
  103. .It Fl v | -version
  104. Print GNUnet version number.
  105. .El
  106. .Sh SEE ALSO
  107. .Xr gnunet-peerinfo 1
  108. .sp
  109. The full documentation for gnunet is maintained as a Texinfo manual.
  110. If the
  111. .Xr info 1
  112. and gnunet programs are properly installed at your site, the command
  113. .Pp
  114. .Dl info gnunet
  115. .Pp
  116. should give you access to the complete handbook,
  117. .Pp
  118. .Dl info gnunet-c-tutorial
  119. .Pp
  120. will give you access to a tutorial for developers.
  121. .sp
  122. Depending on your installation, this information is also available in
  123. .Xr gnunet 7 and
  124. .Xr gnunet-c-tutorial 7 .
  125. .\".Sh HISTORY
  126. .\".Sh AUTHORS
  127. .Sh BUGS
  128. Report bugs by using
  129. .Lk https://bugs.gnunet.org
  130. or by sending electronic mail to
  131. .Aq Mt gnunet-developers@gnu.org .