(wipes sweat from brow).

SSKs
----
I just completed support for SSKs in Freenet.  SSK stands either for SVK
Subspace Key, or Simple Subspace Key.  Take your pick.

SSK's are simply the client-side representation of SVK's with a document
name. 

What these allow you to do is create a very simple subspace in Freenet
with guessable keys but control over insertion. 

To use them, you must first generate an SVK.  The recommended way to do
this is to insert an 'introductory document' into Freenet under just the
SVK.  In the sample clients, this could be accomplished by:

java Freenet.client.BInsert freenet:SVK@ intro-doc.txt

The client will create a random SVK, insert the document, and return two
Freenet keys, a public and private one.

---
$ java Freenet.client.BInsert -htl 1 freenet:SVK@ intro-doc.txt
c6625a5e8666bd79 - HandshakeRequest -> tcp/127.0.0.1:50001
c6625a5e8666bd79 - HandshakeReply <- tcp/127.0.0.1:50001
. 
.etc
. 
Inserted Key: freenet:SVK at 
XChKB7aBZAMIMK2cBArQRo7v05ECAQ,7SThKCDy~QCuODt8xPKzHA
SVK private key: freenet:SVK at ALMdvwtA8yWTouuB0vFty9JAwyZ2J9w

---

The first of these keys is the world distributable SVK.  This can be used
to access the SVK as a normal key in freenet.  

The second is the private key associated with the SVK.  This must be
guarded with care, as possesion of the private key is the only way to
insert documents into the subspace, or update the SVK (in the future).

Insertion of a document into the subspace works as follows:

$ java Freenet.client.BInsert -htl 1 
freenet:SSK@/my/guessable/key,ALMdvwtA8yWTouuB0vFty9JAwyZ2J9w 
mydocument.txt
c6625a5e8666bd79 - HandshakeRequest -> tcp/127.0.0.1:50001
c6625a5e8666bd79 - HandshakeReply <- tcp/127.0.0.1:50001
. 
. etc
. 
Inserted Key: freenet:SSK@/my/guessable/key,XChKB7aBZAMIMK2cBArQRo7v05ECAQ

---
Notice that to insert, you provide the new guessable key for the document,
as well as the private key.  The result is a guessable document under the
searchkey of the SVK.


Freenet URIs
------------
A little sidebar about the Freenet URI form:
freenet:[KeyType@]keyVal[,cryptoKey/subspace]

KeyType is one of CHK, SVK, KSK, or SSK.

keyVal is the search key.  For CHK and SVK, these are modified base64
encoded quantities, including the key number.   
  I say modified base64 because instead of using '~' and '-' instead of
'+' and '/' in the encoding, so that they could be used in a URI.
For KSK and SSK, keyVal is the human readable, guessable keyword.

cryptoKey/subspace:  For CHKs and SVKs, this field contains the modified
base64 encoded decryption key.  Remember that this isn't inserted into
Freenet, but is necessary to view the document on request.
For SSKs, the field contains the search key for the parent subspace.  This
is the same as the search key for the SVK.  For KSKs, this field is
unused.
        Scott







-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20000813/eea32736/attachment.pgp>

Reply via email to