2017-04-17 18:08:24 -04:00
|
|
|
package notary
|
|
|
|
|
2017-08-24 18:40:24 -04:00
|
|
|
import (
|
|
|
|
"time"
|
|
|
|
)
|
2017-04-17 18:08:24 -04:00
|
|
|
|
|
|
|
// application wide constants
|
|
|
|
const (
|
|
|
|
// MaxDownloadSize is the maximum size we'll download for metadata if no limit is given
|
|
|
|
MaxDownloadSize int64 = 100 << 20
|
|
|
|
// MaxTimestampSize is the maximum size of timestamp metadata - 1MiB.
|
|
|
|
MaxTimestampSize int64 = 1 << 20
|
|
|
|
// MinRSABitSize is the minimum bit size for RSA keys allowed in notary
|
|
|
|
MinRSABitSize = 2048
|
|
|
|
// MinThreshold requires a minimum of one threshold for roles; currently we do not support a higher threshold
|
|
|
|
MinThreshold = 1
|
2017-08-24 18:40:24 -04:00
|
|
|
// SHA256HexSize is how big a SHA256 hex is in number of characters
|
|
|
|
SHA256HexSize = 64
|
|
|
|
// SHA512HexSize is how big a SHA512 hex is in number of characters
|
|
|
|
SHA512HexSize = 128
|
2017-04-17 18:08:24 -04:00
|
|
|
// SHA256 is the name of SHA256 hash algorithm
|
|
|
|
SHA256 = "sha256"
|
|
|
|
// SHA512 is the name of SHA512 hash algorithm
|
|
|
|
SHA512 = "sha512"
|
|
|
|
// TrustedCertsDir is the directory, under the notary repo base directory, where trusted certs are stored
|
|
|
|
TrustedCertsDir = "trusted_certificates"
|
|
|
|
// PrivDir is the directory, under the notary repo base directory, where private keys are stored
|
|
|
|
PrivDir = "private"
|
|
|
|
// RootKeysSubdir is the subdirectory under PrivDir where root private keys are stored
|
2017-08-24 18:40:24 -04:00
|
|
|
// DEPRECATED: The only reason we need this constant is compatibility with older versions
|
2017-04-17 18:08:24 -04:00
|
|
|
RootKeysSubdir = "root_keys"
|
|
|
|
// NonRootKeysSubdir is the subdirectory under PrivDir where non-root private keys are stored
|
2017-08-24 18:40:24 -04:00
|
|
|
// DEPRECATED: The only reason we need this constant is compatibility with older versions
|
2017-04-17 18:08:24 -04:00
|
|
|
NonRootKeysSubdir = "tuf_keys"
|
|
|
|
// KeyExtension is the file extension to use for private key files
|
|
|
|
KeyExtension = "key"
|
|
|
|
|
|
|
|
// Day is a duration of one day
|
|
|
|
Day = 24 * time.Hour
|
|
|
|
Year = 365 * Day
|
|
|
|
|
|
|
|
// NotaryRootExpiry is the duration representing the expiry time of the Root role
|
|
|
|
NotaryRootExpiry = 10 * Year
|
|
|
|
NotaryTargetsExpiry = 3 * Year
|
|
|
|
NotarySnapshotExpiry = 3 * Year
|
|
|
|
NotaryTimestampExpiry = 14 * Day
|
|
|
|
|
|
|
|
ConsistentMetadataCacheMaxAge = 30 * Day
|
|
|
|
CurrentMetadataCacheMaxAge = 5 * time.Minute
|
|
|
|
// CacheMaxAgeLimit is the generally recommended maximum age for Cache-Control headers
|
|
|
|
// (one year, in seconds, since one year is forever in terms of internet
|
|
|
|
// content)
|
|
|
|
CacheMaxAgeLimit = 1 * Year
|
|
|
|
|
|
|
|
MySQLBackend = "mysql"
|
|
|
|
MemoryBackend = "memory"
|
2017-08-24 18:40:24 -04:00
|
|
|
PostgresBackend = "postgres"
|
2017-04-17 18:08:24 -04:00
|
|
|
SQLiteBackend = "sqlite3"
|
|
|
|
RethinkDBBackend = "rethinkdb"
|
2017-08-24 18:40:24 -04:00
|
|
|
FileBackend = "file"
|
2017-04-17 18:08:24 -04:00
|
|
|
|
|
|
|
DefaultImportRole = "delegation"
|
2017-08-24 18:40:24 -04:00
|
|
|
|
|
|
|
// HealthCheckKeyManagement and HealthCheckSigner are the grpc service name
|
|
|
|
// for "KeyManagement" and "Signer" respectively which used for health check.
|
|
|
|
// The "Overall" indicates the querying for overall status of the server.
|
|
|
|
HealthCheckKeyManagement = "grpc.health.v1.Health.KeyManagement"
|
|
|
|
HealthCheckSigner = "grpc.health.v1.Health.Signer"
|
|
|
|
HealthCheckOverall = "grpc.health.v1.Health.Overall"
|
|
|
|
|
|
|
|
// PrivExecPerms indicates the file permissions for directory
|
|
|
|
// and PrivNoExecPerms for file.
|
|
|
|
PrivExecPerms = 0700
|
|
|
|
PrivNoExecPerms = 0600
|
|
|
|
|
|
|
|
// DefaultPageSize is the default number of records to return from the changefeed
|
|
|
|
DefaultPageSize = 100
|
|
|
|
)
|
|
|
|
|
|
|
|
// enum to use for setting and retrieving values from contexts
|
|
|
|
const (
|
|
|
|
CtxKeyMetaStore CtxKey = iota
|
|
|
|
CtxKeyKeyAlgo
|
|
|
|
CtxKeyCryptoSvc
|
|
|
|
CtxKeyRepo
|
2017-04-17 18:08:24 -04:00
|
|
|
)
|
|
|
|
|
2017-08-24 18:40:24 -04:00
|
|
|
// NotarySupportedBackends contains the backends we would like to support at present
|
|
|
|
var NotarySupportedBackends = []string{
|
|
|
|
MemoryBackend,
|
|
|
|
MySQLBackend,
|
|
|
|
SQLiteBackend,
|
|
|
|
RethinkDBBackend,
|
|
|
|
PostgresBackend,
|
2017-04-17 18:08:24 -04:00
|
|
|
}
|