keymint

package
v0.0.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 22, 2026 License: CC0-1.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TransactionIKeyMintDeviceGetHardwareInfo              = binder.FirstCallTransaction + 0
	TransactionIKeyMintDeviceAddRngEntropy                = binder.FirstCallTransaction + 1
	TransactionIKeyMintDeviceGenerateKey                  = binder.FirstCallTransaction + 2
	TransactionIKeyMintDeviceImportKey                    = binder.FirstCallTransaction + 3
	TransactionIKeyMintDeviceImportWrappedKey             = binder.FirstCallTransaction + 4
	TransactionIKeyMintDeviceUpgradeKey                   = binder.FirstCallTransaction + 5
	TransactionIKeyMintDeviceDeleteKey                    = binder.FirstCallTransaction + 6
	TransactionIKeyMintDeviceDeleteAllKeys                = binder.FirstCallTransaction + 7
	TransactionIKeyMintDeviceDestroyAttestationIds        = binder.FirstCallTransaction + 8
	TransactionIKeyMintDeviceBegin                        = binder.FirstCallTransaction + 9
	TransactionIKeyMintDeviceDeviceLocked                 = binder.FirstCallTransaction + 10
	TransactionIKeyMintDeviceEarlyBootEnded               = binder.FirstCallTransaction + 11
	TransactionIKeyMintDeviceConvertStorageKeyToEphemeral = binder.FirstCallTransaction + 12
	TransactionIKeyMintDeviceGetKeyCharacteristics        = binder.FirstCallTransaction + 13
	TransactionIKeyMintDeviceGetRootOfTrustChallenge      = binder.FirstCallTransaction + 14
	TransactionIKeyMintDeviceGetRootOfTrust               = binder.FirstCallTransaction + 15
	TransactionIKeyMintDeviceSendRootOfTrust              = binder.FirstCallTransaction + 16
)
View Source
const (
	MethodIKeyMintDeviceGetHardwareInfo              = "getHardwareInfo"
	MethodIKeyMintDeviceAddRngEntropy                = "addRngEntropy"
	MethodIKeyMintDeviceGenerateKey                  = "generateKey"
	MethodIKeyMintDeviceImportKey                    = "importKey"
	MethodIKeyMintDeviceImportWrappedKey             = "importWrappedKey"
	MethodIKeyMintDeviceUpgradeKey                   = "upgradeKey"
	MethodIKeyMintDeviceDeleteKey                    = "deleteKey"
	MethodIKeyMintDeviceDeleteAllKeys                = "deleteAllKeys"
	MethodIKeyMintDeviceDestroyAttestationIds        = "destroyAttestationIds"
	MethodIKeyMintDeviceBegin                        = "begin"
	MethodIKeyMintDeviceDeviceLocked                 = "deviceLocked"
	MethodIKeyMintDeviceEarlyBootEnded               = "earlyBootEnded"
	MethodIKeyMintDeviceConvertStorageKeyToEphemeral = "convertStorageKeyToEphemeral"
	MethodIKeyMintDeviceGetKeyCharacteristics        = "getKeyCharacteristics"
	MethodIKeyMintDeviceGetRootOfTrustChallenge      = "getRootOfTrustChallenge"
	MethodIKeyMintDeviceGetRootOfTrust               = "getRootOfTrust"
	MethodIKeyMintDeviceSendRootOfTrust              = "sendRootOfTrust"
)
View Source
const (
	TransactionIKeyMintOperationUpdateAad = binder.FirstCallTransaction + 0
	TransactionIKeyMintOperationUpdate    = binder.FirstCallTransaction + 1
	TransactionIKeyMintOperationFinish    = binder.FirstCallTransaction + 2
	TransactionIKeyMintOperationAbort     = binder.FirstCallTransaction + 3
)
View Source
const (
	MethodIKeyMintOperationUpdateAad = "updateAad"
	MethodIKeyMintOperationUpdate    = "update"
	MethodIKeyMintOperationFinish    = "finish"
	MethodIKeyMintOperationAbort     = "abort"
)
View Source
const (
	TransactionIRemotelyProvisionedComponentGetHardwareInfo              = binder.FirstCallTransaction + 0
	TransactionIRemotelyProvisionedComponentGenerateEcdsaP256KeyPair     = binder.FirstCallTransaction + 1
	TransactionIRemotelyProvisionedComponentGenerateCertificateRequest   = binder.FirstCallTransaction + 2
	TransactionIRemotelyProvisionedComponentGenerateCertificateRequestV2 = binder.FirstCallTransaction + 3
)
View Source
const (
	MethodIRemotelyProvisionedComponentGetHardwareInfo              = "getHardwareInfo"
	MethodIRemotelyProvisionedComponentGenerateEcdsaP256KeyPair     = "generateEcdsaP256KeyPair"
	MethodIRemotelyProvisionedComponentGenerateCertificateRequest   = "generateCertificateRequest"
	MethodIRemotelyProvisionedComponentGenerateCertificateRequestV2 = "generateCertificateRequestV2"
)
View Source
const (
	IRemotelyProvisionedComponentStatusFailed                     int32 = 1
	IRemotelyProvisionedComponentStatusInvalidMac                 int32 = 2
	IRemotelyProvisionedComponentStatusProductionKeyInTestRequest int32 = 3
	IRemotelyProvisionedComponentStatusTestKeyInProductionRequest int32 = 4
	IRemotelyProvisionedComponentStatusInvalidEek                 int32 = 5
	IRemotelyProvisionedComponentStatusRemoved                    int32 = 6
)
View Source
const (
	KeyParameterValueTagInvalid                   int32 = 0
	KeyParameterValueTagAlgorithm                 int32 = 1
	KeyParameterValueTagBlockMode                 int32 = 2
	KeyParameterValueTagPaddingMode               int32 = 3
	KeyParameterValueTagDigest                    int32 = 4
	KeyParameterValueTagEcCurve                   int32 = 5
	KeyParameterValueTagOrigin                    int32 = 6
	KeyParameterValueTagKeyPurpose                int32 = 7
	KeyParameterValueTagHardwareAuthenticatorType int32 = 8
	KeyParameterValueTagSecurityLevel             int32 = 9
	KeyParameterValueTagBoolValue                 int32 = 10
	KeyParameterValueTagInteger                   int32 = 11
	KeyParameterValueTagLongInteger               int32 = 12
	KeyParameterValueTagDateTime                  int32 = 13
	KeyParameterValueTagBlob                      int32 = 14
)
View Source
const (
	RpcHardwareInfoCurveNone                int32 = 0
	RpcHardwareInfoCurveP256                int32 = 1
	RpcHardwareInfoCurve25519               int32 = 2
	RpcHardwareInfoMinSupportedNumKeysInCsr int32 = 20
)
View Source
const DescriptorIKeyMintDevice = "android.hardware.security.keymint.IKeyMintDevice"
View Source
const DescriptorIKeyMintOperation = "android.hardware.security.keymint.IKeyMintOperation"
View Source
const DescriptorIRemotelyProvisionedComponent = "android.hardware.security.keymint.IRemotelyProvisionedComponent"
View Source
const (
	IKeyMintDeviceAuthTokenMacLength int32 = 32
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Algorithm

type Algorithm int32
const (
	AlgorithmRSA       Algorithm = 1
	AlgorithmEC        Algorithm = 3
	AlgorithmAES       Algorithm = 32
	AlgorithmTripleDes Algorithm = 33
	AlgorithmHMAC      Algorithm = 128
)

type AttestationKey

type AttestationKey struct {
	KeyBlob           []byte
	AttestKeyParams   []KeyParameter
	IssuerSubjectName []byte
}

func (*AttestationKey) MarshalParcel

func (s *AttestationKey) MarshalParcel(
	p *parcel.Parcel,
) error

func (*AttestationKey) UnmarshalParcel

func (s *AttestationKey) UnmarshalParcel(
	p *parcel.Parcel,
) error

type BeginResult

type BeginResult struct {
	Challenge int64
	Params    []KeyParameter
	Operation IKeyMintOperation
}

func (*BeginResult) MarshalParcel

func (s *BeginResult) MarshalParcel(
	p *parcel.Parcel,
) error

func (*BeginResult) UnmarshalParcel

func (s *BeginResult) UnmarshalParcel(
	p *parcel.Parcel,
) error

type BlockMode

type BlockMode int32
const (
	BlockModeECB BlockMode = 1
	BlockModeCBC BlockMode = 2
	BlockModeCTR BlockMode = 3
	BlockModeGCM BlockMode = 32
)

type Certificate

type Certificate struct {
	EncodedCertificate []byte
}

func (*Certificate) MarshalParcel

func (s *Certificate) MarshalParcel(
	p *parcel.Parcel,
) error

func (*Certificate) UnmarshalParcel

func (s *Certificate) UnmarshalParcel(
	p *parcel.Parcel,
) error

type DeviceInfo

type DeviceInfo struct {
	DeviceInfo []byte
}

func (*DeviceInfo) MarshalParcel

func (s *DeviceInfo) MarshalParcel(
	p *parcel.Parcel,
) error

func (*DeviceInfo) UnmarshalParcel

func (s *DeviceInfo) UnmarshalParcel(
	p *parcel.Parcel,
) error

type Digest

type Digest int32
const (
	DigestNONE    Digest = 0
	DigestMD5     Digest = 1
	DigestSHA1    Digest = 2
	DigestSha2224 Digest = 3
	DigestSha2256 Digest = 4
	DigestSha2384 Digest = 5
	DigestSha2512 Digest = 6
)

type EcCurve

type EcCurve int32
const (
	EcCurveP224       EcCurve = 0
	EcCurveP256       EcCurve = 1
	EcCurveP384       EcCurve = 2
	EcCurveP521       EcCurve = 3
	EcCurveCurve25519 EcCurve = 4
)

type ErrorCode

type ErrorCode int32
const (
	ErrorCodeOK                                  ErrorCode = 0
	ErrorCodeRootOfTrustAlreadySet               ErrorCode = -1
	ErrorCodeUnsupportedPurpose                  ErrorCode = -2
	ErrorCodeIncompatiblePurpose                 ErrorCode = -3
	ErrorCodeUnsupportedAlgorithm                ErrorCode = -4
	ErrorCodeIncompatibleAlgorithm               ErrorCode = -5
	ErrorCodeUnsupportedKeySize                  ErrorCode = -6
	ErrorCodeUnsupportedBlockMode                ErrorCode = -7
	ErrorCodeIncompatibleBlockMode               ErrorCode = -8
	ErrorCodeUnsupportedMacLength                ErrorCode = -9
	ErrorCodeUnsupportedPaddingMode              ErrorCode = -10
	ErrorCodeIncompatiblePaddingMode             ErrorCode = -11
	ErrorCodeUnsupportedDigest                   ErrorCode = -12
	ErrorCodeIncompatibleDigest                  ErrorCode = -13
	ErrorCodeInvalidExpirationTime               ErrorCode = -14
	ErrorCodeInvalidUserId                       ErrorCode = -15
	ErrorCodeInvalidAuthorizationTimeout         ErrorCode = -16
	ErrorCodeUnsupportedKeyFormat                ErrorCode = -17
	ErrorCodeIncompatibleKeyFormat               ErrorCode = -18
	ErrorCodeUnsupportedKeyEncryptionAlgorithm   ErrorCode = -19
	ErrorCodeUnsupportedKeyVerificationAlgorithm ErrorCode = -20
	ErrorCodeInvalidInputLength                  ErrorCode = -21
	ErrorCodeKeyExportOptionsInvalid             ErrorCode = -22
	ErrorCodeDelegationNotAllowed                ErrorCode = -23
	ErrorCodeKeyNotYetValid                      ErrorCode = -24
	ErrorCodeKeyExpired                          ErrorCode = -25
	ErrorCodeKeyUserNotAuthenticated             ErrorCode = -26
	ErrorCodeOutputParameterNull                 ErrorCode = -27
	ErrorCodeInvalidOperationHandle              ErrorCode = -28
	ErrorCodeInsufficientBufferSpace             ErrorCode = -29
	ErrorCodeVerificationFailed                  ErrorCode = -30
	ErrorCodeTooManyOperations                   ErrorCode = -31
	ErrorCodeUnexpectedNullPointer               ErrorCode = -32
	ErrorCodeInvalidKeyBlob                      ErrorCode = -33
	ErrorCodeImportedKeyNotEncrypted             ErrorCode = -34
	ErrorCodeImportedKeyDecryptionFailed         ErrorCode = -35
	ErrorCodeImportedKeyNotSigned                ErrorCode = -36
	ErrorCodeImportedKeyVerificationFailed       ErrorCode = -37
	ErrorCodeInvalidArgument                     ErrorCode = -38
	ErrorCodeUnsupportedTag                      ErrorCode = -39
	ErrorCodeInvalidTag                          ErrorCode = -40
	ErrorCodeMemoryAllocationFailed              ErrorCode = -41
	ErrorCodeImportParameterMismatch             ErrorCode = -44
	ErrorCodeSecureHwAccessDenied                ErrorCode = -45
	ErrorCodeOperationCancelled                  ErrorCode = -46
	ErrorCodeConcurrentAccessConflict            ErrorCode = -47
	ErrorCodeSecureHwBusy                        ErrorCode = -48
	ErrorCodeSecureHwCommunicationFailed         ErrorCode = -49
	ErrorCodeUnsupportedEcField                  ErrorCode = -50
	ErrorCodeMissingNonce                        ErrorCode = -51
	ErrorCodeInvalidNonce                        ErrorCode = -52
	ErrorCodeMissingMacLength                    ErrorCode = -53
	ErrorCodeKeyRateLimitExceeded                ErrorCode = -54
	ErrorCodeCallerNonceProhibited               ErrorCode = -55
	ErrorCodeKeyMaxOpsExceeded                   ErrorCode = -56
	ErrorCodeInvalidMacLength                    ErrorCode = -57
	ErrorCodeMissingMinMacLength                 ErrorCode = -58
	ErrorCodeUnsupportedMinMacLength             ErrorCode = -59
	ErrorCodeUnsupportedKdf                      ErrorCode = -60
	ErrorCodeUnsupportedEcCurve                  ErrorCode = -61
	ErrorCodeKeyRequiresUpgrade                  ErrorCode = -62
	ErrorCodeAttestationChallengeMissing         ErrorCode = -63
	ErrorCodeKeymintNotConfigured                ErrorCode = -64
	ErrorCodeAttestationApplicationIdMissing     ErrorCode = -65
	ErrorCodeCannotAttestIds                     ErrorCode = -66
	ErrorCodeRollbackResistanceUnavailable       ErrorCode = -67
	ErrorCodeHardwareTypeUnavailable             ErrorCode = -68
	ErrorCodeProofOfPresenceRequired             ErrorCode = -69
	ErrorCodeConcurrentProofOfPresenceRequested  ErrorCode = -70
	ErrorCodeNoUserConfirmation                  ErrorCode = -71
	ErrorCodeDeviceLocked                        ErrorCode = -72
	ErrorCodeEarlyBootEnded                      ErrorCode = -73
	ErrorCodeAttestationKeysNotProvisioned       ErrorCode = -74
	ErrorCodeAttestationIdsNotProvisioned        ErrorCode = -75
	ErrorCodeInvalidOperation                    ErrorCode = -76
	ErrorCodeStorageKeyUnsupported               ErrorCode = -77
	ErrorCodeIncompatibleMgfDigest               ErrorCode = -78
	ErrorCodeUnsupportedMgfDigest                ErrorCode = -79
	ErrorCodeMissingNotBefore                    ErrorCode = -80
	ErrorCodeMissingNotAfter                     ErrorCode = -81
	ErrorCodeMissingIssuerSubject                ErrorCode = -82
	ErrorCodeInvalidIssuerSubject                ErrorCode = -83
	ErrorCodeBootLevelExceeded                   ErrorCode = -84
	ErrorCodeHardwareNotYetAvailable             ErrorCode = -85
	ErrorCodeUNIMPLEMENTED                       ErrorCode = -100
	ErrorCodeVersionMismatch                     ErrorCode = -101
	ErrorCodeUnknownError                        ErrorCode = -1000
)

type HardwareAuthToken

type HardwareAuthToken struct {
	Challenge         int64
	UserId            int64
	AuthenticatorId   int64
	AuthenticatorType HardwareAuthenticatorType
	Timestamp         secureclock.Timestamp
	Mac               []byte
}

func (*HardwareAuthToken) MarshalParcel

func (s *HardwareAuthToken) MarshalParcel(
	p *parcel.Parcel,
) error

func (*HardwareAuthToken) UnmarshalParcel

func (s *HardwareAuthToken) UnmarshalParcel(
	p *parcel.Parcel,
) error

type HardwareAuthenticatorType

type HardwareAuthenticatorType int32
const (
	HardwareAuthenticatorTypeNONE        HardwareAuthenticatorType = 0
	HardwareAuthenticatorTypePASSWORD    HardwareAuthenticatorType = (1 << 0)
	HardwareAuthenticatorTypeFINGERPRINT HardwareAuthenticatorType = (1 << 1)
	HardwareAuthenticatorTypeANY         HardwareAuthenticatorType = -1
)

type IKeyMintDevice

type IKeyMintDevice interface {
	AsBinder() binder.IBinder
	GetHardwareInfo(ctx context.Context) (KeyMintHardwareInfo, error)
	AddRngEntropy(ctx context.Context, data []byte) error
	GenerateKey(ctx context.Context, keyParams []KeyParameter, attestationKey *AttestationKey) (KeyCreationResult, error)
	ImportKey(ctx context.Context, keyParams []KeyParameter, keyFormat KeyFormat, keyData []byte, attestationKey *AttestationKey) (KeyCreationResult, error)
	ImportWrappedKey(ctx context.Context, wrappedKeyData []byte, wrappingKeyBlob []byte, maskingKey []byte, unwrappingParams []KeyParameter, passwordSid int64, biometricSid int64) (KeyCreationResult, error)
	UpgradeKey(ctx context.Context, keyBlobToUpgrade []byte, upgradeParams []KeyParameter) ([]byte, error)
	DeleteKey(ctx context.Context, keyBlob []byte) error
	DeleteAllKeys(ctx context.Context) error
	DestroyAttestationIds(ctx context.Context) error
	Begin(ctx context.Context, purpose KeyPurpose, keyBlob []byte, params []KeyParameter, authToken *HardwareAuthToken) (BeginResult, error)
	DeviceLocked(ctx context.Context, passwordOnly bool, timestampToken *secureclock.TimeStampToken) error
	EarlyBootEnded(ctx context.Context) error
	ConvertStorageKeyToEphemeral(ctx context.Context, storageKeyBlob []byte) ([]byte, error)
	GetKeyCharacteristics(ctx context.Context, keyBlob []byte, appId []byte, appData []byte) ([]KeyCharacteristics, error)
	GetRootOfTrustChallenge(ctx context.Context) ([]byte, error)
	GetRootOfTrust(ctx context.Context, challenge []byte) ([]byte, error)
	SendRootOfTrust(ctx context.Context, rootOfTrust []byte) error
}

func NewKeyMintDeviceStub

func NewKeyMintDeviceStub(
	impl IKeyMintDeviceServer,
) IKeyMintDevice

NewKeyMintDeviceStub creates a server-side IKeyMintDevice wrapping the given server implementation. The returned value satisfies IKeyMintDevice and can be passed to proxy methods; its AsBinder() returns a *binder.StubBinder that is auto-registered with the binder driver on first use.

type IKeyMintDeviceServer

type IKeyMintDeviceServer interface {
	GetHardwareInfo(ctx context.Context) (KeyMintHardwareInfo, error)
	AddRngEntropy(ctx context.Context, data []byte) error
	GenerateKey(ctx context.Context, keyParams []KeyParameter, attestationKey *AttestationKey) (KeyCreationResult, error)
	ImportKey(ctx context.Context, keyParams []KeyParameter, keyFormat KeyFormat, keyData []byte, attestationKey *AttestationKey) (KeyCreationResult, error)
	ImportWrappedKey(ctx context.Context, wrappedKeyData []byte, wrappingKeyBlob []byte, maskingKey []byte, unwrappingParams []KeyParameter, passwordSid int64, biometricSid int64) (KeyCreationResult, error)
	UpgradeKey(ctx context.Context, keyBlobToUpgrade []byte, upgradeParams []KeyParameter) ([]byte, error)
	DeleteKey(ctx context.Context, keyBlob []byte) error
	DeleteAllKeys(ctx context.Context) error
	DestroyAttestationIds(ctx context.Context) error
	Begin(ctx context.Context, purpose KeyPurpose, keyBlob []byte, params []KeyParameter, authToken *HardwareAuthToken) (BeginResult, error)
	DeviceLocked(ctx context.Context, passwordOnly bool, timestampToken *secureclock.TimeStampToken) error
	EarlyBootEnded(ctx context.Context) error
	ConvertStorageKeyToEphemeral(ctx context.Context, storageKeyBlob []byte) ([]byte, error)
	GetKeyCharacteristics(ctx context.Context, keyBlob []byte, appId []byte, appData []byte) ([]KeyCharacteristics, error)
	GetRootOfTrustChallenge(ctx context.Context) ([]byte, error)
	GetRootOfTrust(ctx context.Context, challenge []byte) ([]byte, error)
	SendRootOfTrust(ctx context.Context, rootOfTrust []byte) error
}

IKeyMintDeviceServer is the server-side interface that user implementations provide to NewKeyMintDeviceStub. It contains only the business methods, without AsBinder (which is provided by the stub itself).

type IKeyMintOperation

type IKeyMintOperation interface {
	AsBinder() binder.IBinder
	UpdateAad(ctx context.Context, input []byte, authToken *HardwareAuthToken, timeStampToken *secureclock.TimeStampToken) error
	Update(ctx context.Context, input []byte, authToken *HardwareAuthToken, timeStampToken *secureclock.TimeStampToken) ([]byte, error)
	Finish(ctx context.Context, input []byte, signature []byte, authToken *HardwareAuthToken, timestampToken *secureclock.TimeStampToken, confirmationToken []byte) ([]byte, error)
	Abort(ctx context.Context) error
}

func NewKeyMintOperationStub

func NewKeyMintOperationStub(
	impl IKeyMintOperationServer,
) IKeyMintOperation

NewKeyMintOperationStub creates a server-side IKeyMintOperation wrapping the given server implementation. The returned value satisfies IKeyMintOperation and can be passed to proxy methods; its AsBinder() returns a *binder.StubBinder that is auto-registered with the binder driver on first use.

type IKeyMintOperationServer

type IKeyMintOperationServer interface {
	UpdateAad(ctx context.Context, input []byte, authToken *HardwareAuthToken, timeStampToken *secureclock.TimeStampToken) error
	Update(ctx context.Context, input []byte, authToken *HardwareAuthToken, timeStampToken *secureclock.TimeStampToken) ([]byte, error)
	Finish(ctx context.Context, input []byte, signature []byte, authToken *HardwareAuthToken, timestampToken *secureclock.TimeStampToken, confirmationToken []byte) ([]byte, error)
	Abort(ctx context.Context) error
}

IKeyMintOperationServer is the server-side interface that user implementations provide to NewKeyMintOperationStub. It contains only the business methods, without AsBinder (which is provided by the stub itself).

type IRemotelyProvisionedComponent

type IRemotelyProvisionedComponent interface {
	AsBinder() binder.IBinder
	GetHardwareInfo(ctx context.Context) (RpcHardwareInfo, error)
	GenerateEcdsaP256KeyPair(ctx context.Context, testMode bool, macedPublicKey MacedPublicKey) ([]byte, error)
	GenerateCertificateRequest(ctx context.Context, testMode bool, keysToSign []MacedPublicKey, endpointEncryptionCertChain []byte, challenge []byte, deviceInfo DeviceInfo, protectedData ProtectedData) ([]byte, error)
	GenerateCertificateRequestV2(ctx context.Context, keysToSign []MacedPublicKey, challenge []byte) ([]byte, error)
}

func NewRemotelyProvisionedComponentStub

func NewRemotelyProvisionedComponentStub(
	impl IRemotelyProvisionedComponentServer,
) IRemotelyProvisionedComponent

NewRemotelyProvisionedComponentStub creates a server-side IRemotelyProvisionedComponent wrapping the given server implementation. The returned value satisfies IRemotelyProvisionedComponent and can be passed to proxy methods; its AsBinder() returns a *binder.StubBinder that is auto-registered with the binder driver on first use.

type IRemotelyProvisionedComponentServer

type IRemotelyProvisionedComponentServer interface {
	GetHardwareInfo(ctx context.Context) (RpcHardwareInfo, error)
	GenerateEcdsaP256KeyPair(ctx context.Context, testMode bool, macedPublicKey MacedPublicKey) ([]byte, error)
	GenerateCertificateRequest(ctx context.Context, testMode bool, keysToSign []MacedPublicKey, endpointEncryptionCertChain []byte, challenge []byte, deviceInfo DeviceInfo, protectedData ProtectedData) ([]byte, error)
	GenerateCertificateRequestV2(ctx context.Context, keysToSign []MacedPublicKey, challenge []byte) ([]byte, error)
}

IRemotelyProvisionedComponentServer is the server-side interface that user implementations provide to NewRemotelyProvisionedComponentStub. It contains only the business methods, without AsBinder (which is provided by the stub itself).

type KeyCharacteristics

type KeyCharacteristics struct {
	SecurityLevel  SecurityLevel
	Authorizations []KeyParameter
}

func (*KeyCharacteristics) MarshalParcel

func (s *KeyCharacteristics) MarshalParcel(
	p *parcel.Parcel,
) error

func (*KeyCharacteristics) UnmarshalParcel

func (s *KeyCharacteristics) UnmarshalParcel(
	p *parcel.Parcel,
) error

type KeyCreationResult

type KeyCreationResult struct {
	KeyBlob            []byte
	KeyCharacteristics []KeyCharacteristics
	CertificateChain   []Certificate
}

func (*KeyCreationResult) MarshalParcel

func (s *KeyCreationResult) MarshalParcel(
	p *parcel.Parcel,
) error

func (*KeyCreationResult) UnmarshalParcel

func (s *KeyCreationResult) UnmarshalParcel(
	p *parcel.Parcel,
) error

type KeyFormat

type KeyFormat int32
const (
	KeyFormatX509  KeyFormat = 0
	KeyFormatPKCS8 KeyFormat = 1
	KeyFormatRAW   KeyFormat = 3
)

type KeyMintDeviceProxy

type KeyMintDeviceProxy struct {
	Remote binder.IBinder
}

func NewKeyMintDeviceProxy

func NewKeyMintDeviceProxy(
	remote binder.IBinder,
) *KeyMintDeviceProxy

func (*KeyMintDeviceProxy) AddRngEntropy

func (p *KeyMintDeviceProxy) AddRngEntropy(
	ctx context.Context,
	data []byte,
) error

func (*KeyMintDeviceProxy) AsBinder

func (p *KeyMintDeviceProxy) AsBinder() binder.IBinder

func (*KeyMintDeviceProxy) Begin

func (p *KeyMintDeviceProxy) Begin(
	ctx context.Context,
	purpose KeyPurpose,
	keyBlob []byte,
	params []KeyParameter,
	authToken *HardwareAuthToken,
) (BeginResult, error)

func (*KeyMintDeviceProxy) ConvertStorageKeyToEphemeral

func (p *KeyMintDeviceProxy) ConvertStorageKeyToEphemeral(
	ctx context.Context,
	storageKeyBlob []byte,
) ([]byte, error)

func (*KeyMintDeviceProxy) DeleteAllKeys

func (p *KeyMintDeviceProxy) DeleteAllKeys(
	ctx context.Context,
) error

func (*KeyMintDeviceProxy) DeleteKey

func (p *KeyMintDeviceProxy) DeleteKey(
	ctx context.Context,
	keyBlob []byte,
) error

func (*KeyMintDeviceProxy) DestroyAttestationIds

func (p *KeyMintDeviceProxy) DestroyAttestationIds(
	ctx context.Context,
) error

func (*KeyMintDeviceProxy) DeviceLocked

func (p *KeyMintDeviceProxy) DeviceLocked(
	ctx context.Context,
	passwordOnly bool,
	timestampToken *secureclock.TimeStampToken,
) error

func (*KeyMintDeviceProxy) EarlyBootEnded

func (p *KeyMintDeviceProxy) EarlyBootEnded(
	ctx context.Context,
) error

func (*KeyMintDeviceProxy) GenerateKey

func (p *KeyMintDeviceProxy) GenerateKey(
	ctx context.Context,
	keyParams []KeyParameter,
	attestationKey *AttestationKey,
) (KeyCreationResult, error)

func (*KeyMintDeviceProxy) GetHardwareInfo

func (p *KeyMintDeviceProxy) GetHardwareInfo(
	ctx context.Context,
) (KeyMintHardwareInfo, error)

func (*KeyMintDeviceProxy) GetKeyCharacteristics

func (p *KeyMintDeviceProxy) GetKeyCharacteristics(
	ctx context.Context,
	keyBlob []byte,
	appId []byte,
	appData []byte,
) ([]KeyCharacteristics, error)

func (*KeyMintDeviceProxy) GetRootOfTrust

func (p *KeyMintDeviceProxy) GetRootOfTrust(
	ctx context.Context,
	challenge []byte,
) ([]byte, error)

func (*KeyMintDeviceProxy) GetRootOfTrustChallenge

func (p *KeyMintDeviceProxy) GetRootOfTrustChallenge(
	ctx context.Context,
) ([]byte, error)

func (*KeyMintDeviceProxy) ImportKey

func (p *KeyMintDeviceProxy) ImportKey(
	ctx context.Context,
	keyParams []KeyParameter,
	keyFormat KeyFormat,
	keyData []byte,
	attestationKey *AttestationKey,
) (KeyCreationResult, error)

func (*KeyMintDeviceProxy) ImportWrappedKey

func (p *KeyMintDeviceProxy) ImportWrappedKey(
	ctx context.Context,
	wrappedKeyData []byte,
	wrappingKeyBlob []byte,
	maskingKey []byte,
	unwrappingParams []KeyParameter,
	passwordSid int64,
	biometricSid int64,
) (KeyCreationResult, error)

func (*KeyMintDeviceProxy) SendRootOfTrust

func (p *KeyMintDeviceProxy) SendRootOfTrust(
	ctx context.Context,
	rootOfTrust []byte,
) error

func (*KeyMintDeviceProxy) UpgradeKey

func (p *KeyMintDeviceProxy) UpgradeKey(
	ctx context.Context,
	keyBlobToUpgrade []byte,
	upgradeParams []KeyParameter,
) ([]byte, error)

type KeyMintDeviceStub

type KeyMintDeviceStub struct {
	Impl      IKeyMintDevice
	Transport binder.VersionAwareTransport
}

KeyMintDeviceStub dispatches incoming binder transactions to a typed IKeyMintDevice implementation.

func (*KeyMintDeviceStub) Descriptor

func (s *KeyMintDeviceStub) Descriptor() string

func (*KeyMintDeviceStub) OnTransaction

func (s *KeyMintDeviceStub) OnTransaction(
	ctx context.Context,
	code binder.TransactionCode,
	_data *parcel.Parcel,
) (*parcel.Parcel, error)

type KeyMintHardwareInfo

type KeyMintHardwareInfo struct {
	VersionNumber          int32
	SecurityLevel          SecurityLevel
	KeyMintName            string
	KeyMintAuthorName      string
	TimestampTokenRequired bool
}

func (*KeyMintHardwareInfo) MarshalParcel

func (s *KeyMintHardwareInfo) MarshalParcel(
	p *parcel.Parcel,
) error

func (*KeyMintHardwareInfo) UnmarshalParcel

func (s *KeyMintHardwareInfo) UnmarshalParcel(
	p *parcel.Parcel,
) error

type KeyMintOperationProxy

type KeyMintOperationProxy struct {
	Remote binder.IBinder
}

func NewKeyMintOperationProxy

func NewKeyMintOperationProxy(
	remote binder.IBinder,
) *KeyMintOperationProxy

func (*KeyMintOperationProxy) Abort

func (p *KeyMintOperationProxy) Abort(
	ctx context.Context,
) error

func (*KeyMintOperationProxy) AsBinder

func (p *KeyMintOperationProxy) AsBinder() binder.IBinder

func (*KeyMintOperationProxy) Finish

func (p *KeyMintOperationProxy) Finish(
	ctx context.Context,
	input []byte,
	signature []byte,
	authToken *HardwareAuthToken,
	timestampToken *secureclock.TimeStampToken,
	confirmationToken []byte,
) ([]byte, error)

func (*KeyMintOperationProxy) Update

func (p *KeyMintOperationProxy) Update(
	ctx context.Context,
	input []byte,
	authToken *HardwareAuthToken,
	timeStampToken *secureclock.TimeStampToken,
) ([]byte, error)

func (*KeyMintOperationProxy) UpdateAad

func (p *KeyMintOperationProxy) UpdateAad(
	ctx context.Context,
	input []byte,
	authToken *HardwareAuthToken,
	timeStampToken *secureclock.TimeStampToken,
) error

type KeyMintOperationStub

type KeyMintOperationStub struct {
	Impl      IKeyMintOperation
	Transport binder.VersionAwareTransport
}

KeyMintOperationStub dispatches incoming binder transactions to a typed IKeyMintOperation implementation.

func (*KeyMintOperationStub) Descriptor

func (s *KeyMintOperationStub) Descriptor() string

func (*KeyMintOperationStub) OnTransaction

func (s *KeyMintOperationStub) OnTransaction(
	ctx context.Context,
	code binder.TransactionCode,
	_data *parcel.Parcel,
) (*parcel.Parcel, error)

type KeyOrigin

type KeyOrigin int32
const (
	KeyOriginGENERATED        KeyOrigin = 0
	KeyOriginDERIVED          KeyOrigin = 1
	KeyOriginIMPORTED         KeyOrigin = 2
	KeyOriginRESERVED         KeyOrigin = 3
	KeyOriginSecurelyImported KeyOrigin = 4
)

type KeyParameter

type KeyParameter struct {
	Tag   Tag
	Value KeyParameterValue
}

func (*KeyParameter) MarshalParcel

func (s *KeyParameter) MarshalParcel(
	p *parcel.Parcel,
) error

func (*KeyParameter) UnmarshalParcel

func (s *KeyParameter) UnmarshalParcel(
	p *parcel.Parcel,
) error

type KeyParameterValue

type KeyParameterValue struct {
	Tag                       int32
	Invalid                   int32
	Algorithm                 Algorithm
	BlockMode                 BlockMode
	PaddingMode               PaddingMode
	Digest                    Digest
	EcCurve                   EcCurve
	Origin                    KeyOrigin
	KeyPurpose                KeyPurpose
	HardwareAuthenticatorType HardwareAuthenticatorType
	SecurityLevel             SecurityLevel
	BoolValue                 bool
	Integer                   int32
	LongInteger               int64
	DateTime                  int64
	Blob                      []byte
}

func (*KeyParameterValue) GetAlgorithm

func (u *KeyParameterValue) GetAlgorithm() (Algorithm, bool)

func (*KeyParameterValue) GetBlob

func (u *KeyParameterValue) GetBlob() ([]byte, bool)

func (*KeyParameterValue) GetBlockMode

func (u *KeyParameterValue) GetBlockMode() (BlockMode, bool)

func (*KeyParameterValue) GetBoolValue

func (u *KeyParameterValue) GetBoolValue() (bool, bool)

func (*KeyParameterValue) GetDateTime

func (u *KeyParameterValue) GetDateTime() (int64, bool)

func (*KeyParameterValue) GetDigest

func (u *KeyParameterValue) GetDigest() (Digest, bool)

func (*KeyParameterValue) GetEcCurve

func (u *KeyParameterValue) GetEcCurve() (EcCurve, bool)

func (*KeyParameterValue) GetHardwareAuthenticatorType

func (u *KeyParameterValue) GetHardwareAuthenticatorType() (HardwareAuthenticatorType, bool)

func (*KeyParameterValue) GetInteger

func (u *KeyParameterValue) GetInteger() (int32, bool)

func (*KeyParameterValue) GetInvalid

func (u *KeyParameterValue) GetInvalid() (int32, bool)

func (*KeyParameterValue) GetKeyPurpose

func (u *KeyParameterValue) GetKeyPurpose() (KeyPurpose, bool)

func (*KeyParameterValue) GetLongInteger

func (u *KeyParameterValue) GetLongInteger() (int64, bool)

func (*KeyParameterValue) GetOrigin

func (u *KeyParameterValue) GetOrigin() (KeyOrigin, bool)

func (*KeyParameterValue) GetPaddingMode

func (u *KeyParameterValue) GetPaddingMode() (PaddingMode, bool)

func (*KeyParameterValue) GetSecurityLevel

func (u *KeyParameterValue) GetSecurityLevel() (SecurityLevel, bool)

func (*KeyParameterValue) MarshalParcel

func (u *KeyParameterValue) MarshalParcel(
	p *parcel.Parcel,
) error

func (*KeyParameterValue) SetAlgorithm

func (u *KeyParameterValue) SetAlgorithm(
	v Algorithm,
)

func (*KeyParameterValue) SetBlob

func (u *KeyParameterValue) SetBlob(
	v []byte,
)

func (*KeyParameterValue) SetBlockMode

func (u *KeyParameterValue) SetBlockMode(
	v BlockMode,
)

func (*KeyParameterValue) SetBoolValue

func (u *KeyParameterValue) SetBoolValue(
	v bool,
)

func (*KeyParameterValue) SetDateTime

func (u *KeyParameterValue) SetDateTime(
	v int64,
)

func (*KeyParameterValue) SetDigest

func (u *KeyParameterValue) SetDigest(
	v Digest,
)

func (*KeyParameterValue) SetEcCurve

func (u *KeyParameterValue) SetEcCurve(
	v EcCurve,
)

func (*KeyParameterValue) SetHardwareAuthenticatorType

func (u *KeyParameterValue) SetHardwareAuthenticatorType(
	v HardwareAuthenticatorType,
)

func (*KeyParameterValue) SetInteger

func (u *KeyParameterValue) SetInteger(
	v int32,
)

func (*KeyParameterValue) SetInvalid

func (u *KeyParameterValue) SetInvalid(
	v int32,
)

func (*KeyParameterValue) SetKeyPurpose

func (u *KeyParameterValue) SetKeyPurpose(
	v KeyPurpose,
)

func (*KeyParameterValue) SetLongInteger

func (u *KeyParameterValue) SetLongInteger(
	v int64,
)

func (*KeyParameterValue) SetOrigin

func (u *KeyParameterValue) SetOrigin(
	v KeyOrigin,
)

func (*KeyParameterValue) SetPaddingMode

func (u *KeyParameterValue) SetPaddingMode(
	v PaddingMode,
)

func (*KeyParameterValue) SetSecurityLevel

func (u *KeyParameterValue) SetSecurityLevel(
	v SecurityLevel,
)

func (*KeyParameterValue) UnmarshalParcel

func (u *KeyParameterValue) UnmarshalParcel(
	p *parcel.Parcel,
) error

type KeyPurpose

type KeyPurpose int32
const (
	KeyPurposeENCRYPT   KeyPurpose = 0
	KeyPurposeDECRYPT   KeyPurpose = 1
	KeyPurposeSIGN      KeyPurpose = 2
	KeyPurposeVERIFY    KeyPurpose = 3
	KeyPurposeWrapKey   KeyPurpose = 5
	KeyPurposeAgreeKey  KeyPurpose = 6
	KeyPurposeAttestKey KeyPurpose = 7
)

type MacedPublicKey

type MacedPublicKey struct {
	MacedKey []byte
}

func (*MacedPublicKey) MarshalParcel

func (s *MacedPublicKey) MarshalParcel(
	p *parcel.Parcel,
) error

func (*MacedPublicKey) UnmarshalParcel

func (s *MacedPublicKey) UnmarshalParcel(
	p *parcel.Parcel,
) error

type PaddingMode

type PaddingMode int32
const (
	PaddingModeNONE              PaddingMode = 1
	PaddingModeRsaOaep           PaddingMode = 2
	PaddingModeRsaPss            PaddingMode = 3
	PaddingModeRsaPkcs115Encrypt PaddingMode = 4
	PaddingModeRsaPkcs115Sign    PaddingMode = 5
	PaddingModePKCS7             PaddingMode = 64
)

type ProtectedData

type ProtectedData struct {
	ProtectedData []byte
}

func (*ProtectedData) MarshalParcel

func (s *ProtectedData) MarshalParcel(
	p *parcel.Parcel,
) error

func (*ProtectedData) UnmarshalParcel

func (s *ProtectedData) UnmarshalParcel(
	p *parcel.Parcel,
) error

type RemotelyProvisionedComponentProxy

type RemotelyProvisionedComponentProxy struct {
	Remote binder.IBinder
}

func NewRemotelyProvisionedComponentProxy

func NewRemotelyProvisionedComponentProxy(
	remote binder.IBinder,
) *RemotelyProvisionedComponentProxy

func (*RemotelyProvisionedComponentProxy) AsBinder

func (*RemotelyProvisionedComponentProxy) GenerateCertificateRequest

func (p *RemotelyProvisionedComponentProxy) GenerateCertificateRequest(
	ctx context.Context,
	testMode bool,
	keysToSign []MacedPublicKey,
	endpointEncryptionCertChain []byte,
	challenge []byte,
	deviceInfo DeviceInfo,
	protectedData ProtectedData,
) ([]byte, error)

func (*RemotelyProvisionedComponentProxy) GenerateCertificateRequestV2

func (p *RemotelyProvisionedComponentProxy) GenerateCertificateRequestV2(
	ctx context.Context,
	keysToSign []MacedPublicKey,
	challenge []byte,
) ([]byte, error)

func (*RemotelyProvisionedComponentProxy) GenerateEcdsaP256KeyPair

func (p *RemotelyProvisionedComponentProxy) GenerateEcdsaP256KeyPair(
	ctx context.Context,
	testMode bool,
	macedPublicKey MacedPublicKey,
) ([]byte, error)

func (*RemotelyProvisionedComponentProxy) GetHardwareInfo

type RemotelyProvisionedComponentStub

type RemotelyProvisionedComponentStub struct {
	Impl      IRemotelyProvisionedComponent
	Transport binder.VersionAwareTransport
}

RemotelyProvisionedComponentStub dispatches incoming binder transactions to a typed IRemotelyProvisionedComponent implementation.

func (*RemotelyProvisionedComponentStub) Descriptor

func (s *RemotelyProvisionedComponentStub) Descriptor() string

func (*RemotelyProvisionedComponentStub) OnTransaction

type RpcHardwareInfo

type RpcHardwareInfo struct {
	VersionNumber         int32
	RpcAuthorName         string
	SupportedEekCurve     int32
	UniqueId              string
	SupportedNumKeysInCsr int32
}

func (*RpcHardwareInfo) MarshalParcel

func (s *RpcHardwareInfo) MarshalParcel(
	p *parcel.Parcel,
) error

func (*RpcHardwareInfo) UnmarshalParcel

func (s *RpcHardwareInfo) UnmarshalParcel(
	p *parcel.Parcel,
) error

type SecurityLevel

type SecurityLevel int32
const (
	SecurityLevelSOFTWARE           SecurityLevel = 0
	SecurityLevelTrustedEnvironment SecurityLevel = 1
	SecurityLevelSTRONGBOX          SecurityLevel = 2
	SecurityLevelKEYSTORE           SecurityLevel = 100
)

type Tag

type Tag int32
const (
	TagINVALID                     Tag = 0
	TagPURPOSE                     Tag = (Tag(TagTypeEnumRep) | 1)
	TagALGORITHM                   Tag = (Tag(TagTypeENUM) | 2)
	TagKeySize                     Tag = (Tag(TagTypeUINT) | 3)
	TagBlockMode                   Tag = (Tag(TagTypeEnumRep) | 4)
	TagDIGEST                      Tag = (Tag(TagTypeEnumRep) | 5)
	TagPADDING                     Tag = (Tag(TagTypeEnumRep) | 6)
	TagCallerNonce                 Tag = (Tag(TagTypeBOOL) | 7)
	TagMinMacLength                Tag = (Tag(TagTypeUINT) | 8)
	TagEcCurve                     Tag = (Tag(TagTypeENUM) | 10)
	TagRsaPublicExponent           Tag = (Tag(TagTypeULONG) | 200)
	TagIncludeUniqueId             Tag = (Tag(TagTypeBOOL) | 202)
	TagRsaOaepMgfDigest            Tag = (Tag(TagTypeEnumRep) | 203)
	TagBootloaderOnly              Tag = (Tag(TagTypeBOOL) | 302)
	TagRollbackResistance          Tag = (Tag(TagTypeBOOL) | 303)
	TagHardwareType                Tag = (Tag(TagTypeENUM) | 304)
	TagEarlyBootOnly               Tag = (Tag(TagTypeBOOL) | 305)
	TagActiveDatetime              Tag = (Tag(TagTypeDATE) | 400)
	TagOriginationExpireDatetime   Tag = (Tag(TagTypeDATE) | 401)
	TagUsageExpireDatetime         Tag = (Tag(TagTypeDATE) | 402)
	TagMinSecondsBetweenOps        Tag = (Tag(TagTypeUINT) | 403)
	TagMaxUsesPerBoot              Tag = (Tag(TagTypeUINT) | 404)
	TagUsageCountLimit             Tag = (Tag(TagTypeUINT) | 405)
	TagUserId                      Tag = (Tag(TagTypeUINT) | 501)
	TagUserSecureId                Tag = -1610612234
	TagNoAuthRequired              Tag = (Tag(TagTypeBOOL) | 503)
	TagUserAuthType                Tag = (Tag(TagTypeENUM) | 504)
	TagAuthTimeout                 Tag = (Tag(TagTypeUINT) | 505)
	TagAllowWhileOnBody            Tag = (Tag(TagTypeBOOL) | 506)
	TagTrustedUserPresenceRequired Tag = (Tag(TagTypeBOOL) | 507)
	TagTrustedConfirmationRequired Tag = (Tag(TagTypeBOOL) | 508)
	TagUnlockedDeviceRequired      Tag = (Tag(TagTypeBOOL) | 509)
	TagApplicationId               Tag = -1879047591
	TagApplicationData             Tag = -1879047492
	TagCreationDatetime            Tag = (Tag(TagTypeDATE) | 701)
	TagORIGIN                      Tag = (Tag(TagTypeENUM) | 702)
	TagRootOfTrust                 Tag = -1879047488
	TagOsVersion                   Tag = (Tag(TagTypeUINT) | 705)
	TagOsPatchlevel                Tag = (Tag(TagTypeUINT) | 706)
	TagUniqueId                    Tag = -1879047485
	TagAttestationChallenge        Tag = -1879047484
	TagAttestationApplicationId    Tag = -1879047483
	TagAttestationIdBrand          Tag = -1879047482
	TagAttestationIdDevice         Tag = -1879047481
	TagAttestationIdProduct        Tag = -1879047480
	TagAttestationIdSerial         Tag = -1879047479
	TagAttestationIdImei           Tag = -1879047478
	TagAttestationIdMeid           Tag = -1879047477
	TagAttestationIdManufacturer   Tag = -1879047476
	TagAttestationIdModel          Tag = -1879047475
	TagVendorPatchlevel            Tag = (Tag(TagTypeUINT) | 718)
	TagBootPatchlevel              Tag = (Tag(TagTypeUINT) | 719)
	TagDeviceUniqueAttestation     Tag = (Tag(TagTypeBOOL) | 720)
	TagIdentityCredentialKey       Tag = (Tag(TagTypeBOOL) | 721)
	TagStorageKey                  Tag = (Tag(TagTypeBOOL) | 722)
	TagAttestationIdSecondImei     Tag = -1879047469
	TagAssociatedData              Tag = -1879047192
	TagNONCE                       Tag = -1879047191
	TagMacLength                   Tag = (Tag(TagTypeUINT) | 1003)
	TagResetSinceIdRotation        Tag = (Tag(TagTypeBOOL) | 1004)
	TagConfirmationToken           Tag = -1879047187
	TagCertificateSerial           Tag = -2147482642
	TagCertificateSubject          Tag = -1879047185
	TagCertificateNotBefore        Tag = (Tag(TagTypeDATE) | 1008)
	TagCertificateNotAfter         Tag = (Tag(TagTypeDATE) | 1009)
	TagMaxBootLevel                Tag = (Tag(TagTypeUINT) | 1010)
)

type TagType

type TagType int32
const (
	TagTypeINVALID  TagType = (0 << 28)
	TagTypeENUM     TagType = (1 << 28)
	TagTypeEnumRep  TagType = (2 << 28)
	TagTypeUINT     TagType = (3 << 28)
	TagTypeUintRep  TagType = (4 << 28)
	TagTypeULONG    TagType = (5 << 28)
	TagTypeDATE     TagType = (6 << 28)
	TagTypeBOOL     TagType = (7 << 28)
	TagTypeBIGNUM   TagType = -2147483648
	TagTypeBYTES    TagType = -1879048192
	TagTypeUlongRep TagType = -1610612736
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL