KeychainItem Trait (kcit)

Trait for managing an item in a cryptographic keychain.

AttributeValue
Idtag:google.com,2018:m2m:traits:keychain-item:v1:v0#r0
Short-Idkcit
Has-Childrenno
Requirestag:google.com,2018:m2m:traits:base:v1:v0#r0

Config Properties

NameKeyRWReqDescription
Identityc/kcit/idenXXThe identity associated with this key.

c/kcit/iden : Identity

The identity associated with this key.

AttributeValue
Value Typenullable text string
FlagsRW

This field determines what identity to assume when a client uses this keychain item to authenticate.

Default value is anon.

This may be absent if the certificate is not associated with an identity.

Metadata Properties

NameKeyRWReqDescription
TraitURIm/kcit/turiXXThe URI that uniquely identifies the specification used to implement this trait.
Typem/kcit/typeXXSpecifies what type of key this item contains.
Oursm/kcit/oursXDetermines if this certificate item has a private key.
Certificatem/kcit/certXDER-encoded X.509 Certificate
HashSha256m/kcit/sha2XSHA256 hash of the certificate.
SecretSharem/kcit/sssh?XContains one (of m) shares of the secret.
SecretShareVersionm/kcit/sssvXXThe version of the secret share

m/kcit/turi : TraitURI

The URI that uniquely identifies the specification used to implement this trait.

AttributeValue
Value TypeURI-reference
FlagsCONST, REQ

m/kcit/type : Type

Specifies what type of key this item contains.

AttributeValue
Value Typeinteger
FlagsCONST, REQ
  • 0 = x.509 certificate
  • 1 = password
  • 2 = AES128 key

m/kcit/ours : Ours

Determines if this certificate item has a private key.

AttributeValue
Value Typeboolean
FlagsCONST

If this item is a certificate without a private key, this value is false. Otherwise it is true. This field is only required when the contained key is asymmetric (public/private).

m/kcit/cert : Certificate

DER-encoded X.509 Certificate.

AttributeValue
Value Typebyte string
FlagsCONST

If the key for this item is asymmetric, then this property contains the public portion. For example, for X.509 keys this would contain the public certificate. If the underlying key is symmetric, then this property is absent.

m/kcit/sha2 : HashSha256

SHA256 hash of the certificate.

AttributeValue
Value Typebyte string
FlagsCONST

m/kcit/sssh : SecretShare

Contains one (of m) shares of the secret.

AttributeValue
Value Typenullable byte string
FlagsOPT_GET, SET

This property can only be read by someone who has authenticated with the “init” identity. It is only present on keychain items where m/kcit/ours is true. It allows someone to reconstruct the administrative credentials of the network without requiring a factory reset of every device. This allows an administrator to reconstruct their credential by only physically interacting with a subset of the devices in the administrative domain.

m/kcit/sssv : SecretShareVersion

The version of the secret share.

AttributeValue
Value Typenullable integer
FlagsRW

This property MUST be updated every time the secret share is updated.