Skip to content

Agile Keychain specification

Niko Nevala edited this page Nov 6, 2013 · 8 revisions

EncryptionKeyList

  • type: Object
  • stored in data/default/encryptionKeys.js

Properties:

SLN (where N is security level)

  • type: String

Some UID for the security level

list

  • type: Array

An array of EncryptionKeys.

EncryptionKey

Properties

level

  • type: String

identifier

  • type: String

Backreference to EncryptionKeyList SLN.

data

  • type: String
  • description: base64 encoded binary key

Encrypted data.

validation

  • type: String
  • description: base64 encoded binary key

Validation hash of somesort.

iterations

  • type: Number

Number of iterations for this security level. Has to be an integer.

Keychain

  • Stores and decrypts EncryptionKeys
  • In ref. imp.l: Getter for encryption key based on KeyChainItem security level.

KeychainItem

  • Stores item information
  • "Folders" (as per ref. impl. UI) are KeychainItems too
  • In ref. impl.: Decrypts itself by requesting the encryption key for its security level directly from the keychain.
  • stored in data/default/{uuid}.1password

Properties

uuid

  • type: String

folderUuid

  • type: String

createdAt

  • type: Number
  • description: unix timestamp

updatedAt

  • type: Number
  • description: unix timestamp

locationKey

  • type: String

openContents

  • type: Object

Known properties:

  • usernameHash
  • tags[]
  • contentsHash

keyID

  • type: String

title

  • type: String

location

  • type: String

encrypted

  • type: String

typeName

  • type: String

securityLevel

  • type: String
  • default: SL5