diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-03-24 11:41:00 +0100 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2016-03-24 11:41:00 +0100 |
commit | 374198ad6d8747c135ce8d8a8284723b0968aeef (patch) | |
tree | fe8f2f60b12494f14272ac5b2adcd3650421e328 /src/libstore/store-api.hh | |
parent | 11525377e1b0fdba30713ff3826e7bc26ce488af (diff) |
Move signature support from NarInfo to ValidPathInfo
Diffstat (limited to 'src/libstore/store-api.hh')
-rw-r--r-- | src/libstore/store-api.hh | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/libstore/store-api.hh b/src/libstore/store-api.hh index 62ee811eb..b7209d4a3 100644 --- a/src/libstore/store-api.hh +++ b/src/libstore/store-api.hh @@ -2,6 +2,7 @@ #include "hash.hh" #include "serialise.hh" +#include "crypto.hh" #include <string> #include <limits> @@ -112,6 +113,20 @@ struct ValidPathInfo && narHash == i.narHash && references == i.references; } + + /* Return a fingerprint of the store path to be used in binary + cache signatures. It contains the store path, the base-32 + SHA-256 hash of the NAR serialisation of the path, the size of + the NAR, and the sorted references. The size field is strictly + speaking superfluous, but might prevent endless/excessive data + attacks. */ + std::string fingerprint() const; + + void sign(const SecretKey & secretKey); + + /* Return the number of signatures on this .narinfo that were + produced by one of the specified keys. */ + unsigned int checkSignatures(const PublicKeys & publicKeys) const; }; typedef list<ValidPathInfo> ValidPathInfos; |