View Issue Details

IDProjectCategoryView StatusLast Update
0005921GNUnetGNSpublic2019-11-08 11:24
ReporterschanzenAssigned Toschanzen 
PrioritynormalSeveritytweakReproducibilityhave not tried
Status confirmedResolutionopen 
Product VersionSVN HEAD 
Target Version0.12.0Fixed in Version 
Summary0005921: Simplify/harmonize GNS key derivations
DescriptionThe GNS key derivations are kind of all over the place, e.g. for the derivation of the symmetric encryption key we
       PRK_kiv := HKDF-Extract (zk, label)
       K := HKDF-Expand (PRK_kiv, "gns-aes-ctx-key", 512 / 8);
       IV := HKDF-Expand (PRK_kiv, "gns-aes-ctx-iv", 256 / 8)

This means that we use the zone key (zk) as salt and label as initial keying material.
Usually, we use a string as salt and key as IKM, for example when we derive the zone key for signing:
PRK_h := HKDF-Extract ("key-derivation", zk)
         h := HKDF-Expand (PRK_h, label | "gns", 512 / 8)

In order to harmonize this, LSD001 specifies:
         PRK_k := HKDF-Extract ("gns-aes-ctx-key", zk)
         PRK_iv := HKDF-Extract ("gns-aes-ctx-iv", zk)
         K := HKDF-Expand (PRK_k, label, 512 / 8);
         IV := HKDF-Expand (PRK_iv, label, 256 / 8)

This is already implemented but guarded by the define "LSD001" in src/gnsrecord/gnsrecord_crypto.c.
Define for 0.12.
TagsNo tags attached.


child of 0005920 assignedschanzen LSD001 meta issue 


There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2019-10-05 22:31 schanzen New Issue
2019-10-05 22:32 schanzen Relationship added child of 0005920
2019-11-08 11:24 schanzen Assigned To => schanzen
2019-11-08 11:24 schanzen Status new => confirmed