Utility methods for encrypting and decrypting passcode using the Nest Passcode Encryption scheme.
Constant Summary
int | kPasscodeEncryptionConfig1_TEST_ONLY | Passcode encryption configuration 1 (TEST ONLY) Note: This encryption configuration is for testing only and provides no integrity or confidentiality. |
int | kPasscodeEncryptionConfig2 | Passcode encryption configuration 2 |
Field Summary
public static final byte[] | kPasscodeEncKeyDiversifier | Key diversifier used in the derivation of the passcode encryption and authentication keys. |
public static final byte[] | kPasscodeFingerprintKeyDiversifier | Key diversifier used in the derivation of the passcode fingerprint key. |
Public Constructor Summary
Public Method Summary
static String |
decryptPasscode(byte[] encryptedPasscode, byte[] encKey, byte[]
authKey, byte[] fingerprintKey)
Decrypt a passcode that was encrypted using the Nest Passcode Encryption
scheme.
|
static byte[] |
encryptPasscode(int config, int keyId, long nonce, String passcode,
byte[] encKey, byte[] authKey, byte[] fingerprintKey)
Encrypt a passcode using the Nest Passcode Encryption scheme.
|
static int |
getEncryptedPasscodeConfig(byte[] encryptedPasscode)
Extract the configuration type from an encrypted Passcode.
|
static byte[] |
getEncryptedPasscodeFingerprint(byte[] encryptedPasscode)
Extract the fingerprint from an encrypted Passcode.
|
static int |
getEncryptedPasscodeKeyId(byte[] encryptedPasscode)
Extract the key id from an encrypted Passcode.
|
static long |
getEncryptedPasscodeNonce(byte[] encryptedPasscode)
Extract the nonce value from an encrypted Passcode.
|
static boolean |
isSupportedPasscodeEncryptionConfig(int config)
Determines if the specified Passcode encryption configuration is supported.
|
Inherited Method Summary
Constants
public static final int kPasscodeEncryptionConfig1_TEST_ONLY
Passcode encryption configuration 1 (TEST ONLY) Note: This encryption configuration is for testing only and provides no integrity or confidentiality. Config 1 is only available in development builds.
public static final int kPasscodeEncryptionConfig2
Passcode encryption configuration 2
Fields
public static final byte[] kPasscodeEncKeyDiversifier
Key diversifier used in the derivation of the passcode encryption and authentication keys.
public static final byte[] kPasscodeFingerprintKeyDiversifier
Key diversifier used in the derivation of the passcode fingerprint key.
Public Constructors
public PasscodeEncryptionSupport ()
Public Methods
public static String decryptPasscode (byte[] encryptedPasscode, byte[] encKey, byte[] authKey, byte[] fingerprintKey)
Decrypt a passcode that was encrypted using the Nest Passcode Encryption scheme.
Parameters
encryptedPasscode | |
---|---|
encKey | |
authKey | |
fingerprintKey |
public static byte[] encryptPasscode (int config, int keyId, long nonce, String passcode, byte[] encKey, byte[] authKey, byte[] fingerprintKey)
Encrypt a passcode using the Nest Passcode Encryption scheme.
Parameters
config | |
---|---|
keyId | |
nonce | |
passcode | |
encKey | |
authKey | |
fingerprintKey |
public static int getEncryptedPasscodeConfig (byte[] encryptedPasscode)
Extract the configuration type from an encrypted Passcode.
Parameters
encryptedPasscode |
---|
public static byte[] getEncryptedPasscodeFingerprint (byte[] encryptedPasscode)
Extract the fingerprint from an encrypted Passcode.
Parameters
encryptedPasscode |
---|
public static int getEncryptedPasscodeKeyId (byte[] encryptedPasscode)
Extract the key id from an encrypted Passcode.
Parameters
encryptedPasscode |
---|
public static long getEncryptedPasscodeNonce (byte[] encryptedPasscode)
Extract the nonce value from an encrypted Passcode.
Parameters
encryptedPasscode |
---|
public static boolean isSupportedPasscodeEncryptionConfig (int config)
Determines if the specified Passcode encryption configuration is supported.
Parameters
config |
---|