View Issue Details

IDProjectCategoryView StatusLast Update
0005921GNUnetGNSpublic2019-10-05 22:32
ReporterschanzenAssigned To 
PrioritynormalSeveritytweakReproducibilityhave not tried
Status newResolutionopen 
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
calculate:
       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.

Relationships

child of 0005920 assignedschanzen LSD001 meta issue 

Activities

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