Aktualizr
C++ SOTA Client
Public Types | Public Member Functions | Protected Attributes | Static Protected Attributes | List of all members
Uptane::MetaWithKeys Class Reference
Inheritance diagram for Uptane::MetaWithKeys:
[legend]
Collaboration diagram for Uptane::MetaWithKeys:
[legend]

Public Types

enum  Policy { kRejectAll, kAcceptAll, kCheck }
 

Public Member Functions

 MetaWithKeys ()
 An empty metadata object that could contain keys.
 
 MetaWithKeys (const Json::Value &json)
 A 'real' metadata object that can contain keys (Root or Targets with delegations) and that implements TUF signature validation. More...
 
 MetaWithKeys (RepositoryType repo, const Role &role, const Json::Value &json, const std::shared_ptr< MetaWithKeys > &signer)
 
void ParseKeys (RepositoryType repo, const Json::Value &keys)
 
void ParseRole (RepositoryType repo, const Json::ValueConstIterator &it, const Role &role, const std::string &meta_role)
 
virtual void UnpackSignedObject (RepositoryType repo, const Role &role, const Json::Value &signed_object)
 Take a JSON blob that contains a signatures/signed component that is supposedly for a given role, and check that is suitably signed. More...
 
bool operator== (const MetaWithKeys &rhs) const
 
- Public Member Functions inherited from Uptane::BaseMeta
 BaseMeta (const Json::Value &json)
 
 BaseMeta (RepositoryType repo, const Role &role, const Json::Value &json, const std::shared_ptr< MetaWithKeys > &signer)
 
int version () const
 
TimeStamp expiry () const
 
bool isExpired (const TimeStamp &now) const
 
Json::Value original () const
 
bool operator== (const BaseMeta &rhs) const
 

Protected Attributes

std::map< KeyId, PublicKeykeys_
 
std::set< std::pair< Role, KeyId > > keys_for_role_
 
std::map< Role, int64_t > thresholds_for_role_
 
- Protected Attributes inherited from Uptane::BaseMeta
int version_ = {-1}
 
TimeStamp expiry_
 
Json::Value original_object_
 

Static Protected Attributes

static const int64_t kMinSignatures = 1
 
static const int64_t kMaxSignatures = 1000
 

Detailed Description

Definition at line 161 of file tuf.h.

Constructor & Destructor Documentation

◆ MetaWithKeys()

MetaWithKeys::MetaWithKeys ( const Json::Value &  json)

A 'real' metadata object that can contain keys (Root or Targets with delegations) and that implements TUF signature validation.

Parameters
json- The contents of the 'signed' portion

Definition at line 7 of file metawithkeys.cc.

Member Function Documentation

◆ UnpackSignedObject()

void Uptane::MetaWithKeys::UnpackSignedObject ( RepositoryType  repo,
const Role role,
const Json::Value &  signed_object 
)
virtual

Take a JSON blob that contains a signatures/signed component that is supposedly for a given role, and check that is suitably signed.

If it is, it returns the contents of the 'signed' part.

It performs the following checks:

  • "_type" matches the given role
  • "expires" is in the past (vs 'now')
  • The blob has valid signatures from enough keys to cross the threshold for this role
    Parameters
    repo- Repository type (only used to improve the error messages)
    role- The Uptane role of the signed metadata object
    signed_object
    Returns

Reimplemented in Uptane::Root.

Definition at line 58 of file metawithkeys.cc.


The documentation for this class was generated from the following files: