Subject: [Medup] Protocol for peer-to-peer synchronization of secret key material (new draft)

From: Peter Maynard <[email-masked]>
Date: Mon, 9 Sep 2019 18:01:08 +0000

Hello,

I'm looking to make use of this Key Sync Protocol. You say that it has
been demonstrated at the latest meeting, yet, I'm unable to find an
implementation. I've checked out https://pep.foundation/dev. But Iassume its located within one of these projects. 

Would you be able to point me towards a standalone library or the files
within another project to get an idea of how one might implement this
protocol?

Kind Regards, 
Pete

-- 
Pete Maynard
Centre for Secure Information Technologies
0x248FC016ABB8D69D

---

From: Volker Birk <[email-masked]>
Date: Mon, 9 Sep 2019 20:18:00 +0200

On Mon, Sep 09, 2019 at 06:01:08PM +0000, Peter Maynard wrote:
> implementation. I've checked out https://pep.foundation/dev. But
> Iassume its located within one of these projects. 

It's implemented in Sync branch of p≡p engine, see

https://pep.foundation/dev/repos/pEpEngine/

This branch will be the next stable. The adapters have a sync branch,
too, where the API is supported. And the actual coming releases of the
apps of p≡p security are all based on this.

> within another project to get an idea of how one might implement this

This is the protocol:

https://pep.foundation/dev/repos/pEpEngine/file/09f80c60c1c9/sync/sync.fsm

The files implementing it are all in directory sync/

We're generating an implementation using the generators in this
directory. They're named *.ysl2 – they're written in YML2
https://fdik.org/yml/ There is ASN.1 Compiler, v0.9.28 needed to build
all: http://lionet.info/asn1c/compiler.html

The actual MIME handling of p≡p engine is based on this fork of
libetpan: https://github.com/fdik/libetpan/ There's an option to replace
this with the new p≡p MIME https://pep.foundation/dev/repos/pEpMIME/

We're building it using release 0.9.0 of Sequoia PGP
https://gitlab.com/sequoia-pgp/sequoia

So if you're building the p≡p engine in sync branch you'll see an
implementation of it. It's in the files with sync and Sync in their
names (the files with the small s are API, the ones with the large S are
generated).

If you want to see the generated implementation without acutally build
the library I did upload them: https://fdik.org/sync_generated.tar.bz2

Yours,
VB.
-- 
Volker Birk, p≡p project
mailto:[email-masked]
https://pep.software