[Huawei] Rename authMode to deviceSupportType

This commit is contained in:
Damien 'Psolyca' Gaignon 2024-02-03 16:22:35 +01:00
parent 2880297c51
commit 270212a771
No known key found for this signature in database
GPG Key ID: 9E9404E5D9E11843
20 changed files with 38 additions and 38 deletions

View File

@ -81,16 +81,16 @@ public class HuaweiCrypto {
public static final long ENCRYPTION_COUNTER_MAX = 0xFFFFFFFF; public static final long ENCRYPTION_COUNTER_MAX = 0xFFFFFFFF;
protected int authVersion; protected int authVersion;
protected int authMode; protected int deviceSupportType;
protected byte authAlgo; protected byte authAlgo;
public HuaweiCrypto(int authVersion) { public HuaweiCrypto(int authVersion) {
this.authVersion = authVersion; this.authVersion = authVersion;
} }
public HuaweiCrypto(int authVersion, byte authAlgo, int authMode) { public HuaweiCrypto(int authVersion, byte authAlgo, int deviceSupportType) {
this(authVersion); this(authVersion);
this.authMode = authMode; this.deviceSupportType = deviceSupportType;
this.authAlgo = authAlgo; this.authAlgo = authAlgo;
} }
@ -142,7 +142,7 @@ public class HuaweiCrypto {
} }
public byte[] digestChallenge(byte[] secretKey, byte[] nonce) throws NoSuchAlgorithmException, InvalidKeyException, InvalidKeySpecException, UnsupportedEncodingException { public byte[] digestChallenge(byte[] secretKey, byte[] nonce) throws NoSuchAlgorithmException, InvalidKeyException, InvalidKeySpecException, UnsupportedEncodingException {
if (authMode == 0x02) { if (deviceSupportType == 0x02) {
if (secretKey == null) if (secretKey == null)
return null; return null;
if (authVersion == 0x02) { if (authVersion == 0x02) {
@ -158,7 +158,7 @@ public class HuaweiCrypto {
} }
public byte[] digestResponse(byte[] secretKey, byte[] nonce) throws NoSuchAlgorithmException, InvalidKeyException, InvalidKeySpecException, UnsupportedEncodingException { public byte[] digestResponse(byte[] secretKey, byte[] nonce) throws NoSuchAlgorithmException, InvalidKeyException, InvalidKeySpecException, UnsupportedEncodingException {
if (authMode == 0x02) { if (deviceSupportType == 0x02) {
if (secretKey == null) if (secretKey == null)
return null; return null;
if (authVersion == 0x02) { if (authVersion == 0x02) {

View File

@ -46,7 +46,7 @@ public class HuaweiPacket {
public static class ParamsProvider { public static class ParamsProvider {
protected byte authVersion; protected byte authVersion;
protected byte authMode; protected byte deviceSupportType;
protected byte[] secretKey; protected byte[] secretKey;
protected int slicesize = 0xf4; protected int slicesize = 0xf4;
protected boolean transactionsCrypted = true; protected boolean transactionsCrypted = true;
@ -67,12 +67,12 @@ public class HuaweiPacket {
return this.authVersion; return this.authVersion;
} }
public void setAuthMode(byte authMode) { public void setDeviceSupportType(byte deviceSupportType) {
this.authMode = authMode; this.deviceSupportType = deviceSupportType;
} }
public byte getAuthMode(){ public byte getDeviceSupportType(){
return this.authMode; return this.deviceSupportType;
} }
public void setSecretKey(byte[] secretKey) { public void setSecretKey(byte[] secretKey) {
@ -124,7 +124,7 @@ public class HuaweiPacket {
public byte[] getIv() { public byte[] getIv() {
byte[] iv = null; byte[] iv = null;
if (this.authMode == 0x04) { if (this.deviceSupportType == 0x04) {
iv = HuaweiCrypto.generateNonce(); iv = HuaweiCrypto.generateNonce();
} else { } else {
ByteBuffer ivCounter = HuaweiCrypto.initializationVector(this.encryptionCounter); ByteBuffer ivCounter = HuaweiCrypto.initializationVector(this.encryptionCounter);

View File

@ -291,7 +291,7 @@ public class HuaweiTLV {
byte[] serializedTLV = serialize(); byte[] serializedTLV = serialize();
byte[] key = paramsProvider.getSecretKey(); byte[] key = paramsProvider.getSecretKey();
byte[] nonce = paramsProvider.getIv(); byte[] nonce = paramsProvider.getIv();
byte[] encryptedTLV = HuaweiCrypto.encrypt(paramsProvider.getAuthMode(), serializedTLV, key, nonce); byte[] encryptedTLV = HuaweiCrypto.encrypt(paramsProvider.getDeviceSupportType(), serializedTLV, key, nonce);
return new HuaweiTLV() return new HuaweiTLV()
.put(CryptoTags.encryption, (byte) 0x01) .put(CryptoTags.encryption, (byte) 0x01)
.put(CryptoTags.initVector, nonce) .put(CryptoTags.initVector, nonce)
@ -300,7 +300,7 @@ public class HuaweiTLV {
public void decrypt(ParamsProvider paramsProvider) throws CryptoException, HuaweiPacket.MissingTagException { public void decrypt(ParamsProvider paramsProvider) throws CryptoException, HuaweiPacket.MissingTagException {
byte[] key = paramsProvider.getSecretKey(); byte[] key = paramsProvider.getSecretKey();
byte[] decryptedTLV = HuaweiCrypto.decrypt(paramsProvider.getAuthMode(), getBytes(CryptoTags.cipherText), key, getBytes(CryptoTags.initVector)); byte[] decryptedTLV = HuaweiCrypto.decrypt(paramsProvider.getDeviceSupportType(), getBytes(CryptoTags.cipherText), key, getBytes(CryptoTags.initVector));
this.valueMap = new ArrayList<>(); this.valueMap = new ArrayList<>();
parse(decryptedTLV); parse(decryptedTLV);
} }

View File

@ -74,7 +74,7 @@ public class DeviceConfig {
public short sliceSize = 0x00f4; public short sliceSize = 0x00f4;
public byte authVersion = 0x00; public byte authVersion = 0x00;
public byte[] serverNonce = new byte[16]; public byte[] serverNonce = new byte[16];
public byte authMode = 0x00; public byte deviceSupportType = 0x00;
public byte authAlgo = 0x00; public byte authAlgo = 0x00;
public byte bondState = 0x00; public byte bondState = 0x00;
public short interval = 0x0; public short interval = 0x0;
@ -105,7 +105,7 @@ public class DeviceConfig {
this.authVersion = (byte)this.tlv.getBytes(0x05)[1]; this.authVersion = (byte)this.tlv.getBytes(0x05)[1];
if (this.tlv.contains(0x07)) if (this.tlv.contains(0x07))
this.authMode = this.tlv.getByte(0x07); this.deviceSupportType = this.tlv.getByte(0x07);
if (this.tlv.contains(0x08)) if (this.tlv.contains(0x08))
this.authAlgo = this.tlv.getByte(0x08); this.authAlgo = this.tlv.getByte(0x08);
@ -607,7 +607,7 @@ public class DeviceConfig {
this.tlv = new HuaweiTLV() this.tlv = new HuaweiTLV()
.put(0x01, challenge) .put(0x01, challenge)
.put(0x02, nonce); .put(0x02, nonce);
if (paramsProvider.getAuthMode() == 0x02) if (paramsProvider.getDeviceSupportType() == 0x02)
this.tlv.put(0x03, paramsProvider.getAuthAlgo()); this.tlv.put(0x03, paramsProvider.getAuthAlgo());
this.isEncrypted = false; this.isEncrypted = false;
this.complete = true; this.complete = true;

View File

@ -306,12 +306,12 @@ public class HuaweiSupportProvider {
// 1 or 3 : HiChain // 1 or 3 : HiChain
// 2 or 8 : HiChainLite -> normal mode // 2 or 8 : HiChainLite -> normal mode
// 4 : HiChain3 // 4 : HiChain3
byte authMode = paramsProvider.getAuthMode(); byte authMode = paramsProvider.getDeviceSupportType();
return authMode == 0x01 || authMode == 0x03 || authMode == 0x04 || isHiChainLite(); return authMode == 0x01 || authMode == 0x03 || authMode == 0x04 || isHiChainLite();
} }
protected boolean isHiChainLite() { protected boolean isHiChainLite() {
byte authMode = paramsProvider.getAuthMode(); byte authMode = paramsProvider.getDeviceSupportType();
return authMode == 0x02; return authMode == 0x02;
} }

View File

@ -42,7 +42,7 @@ public class GetAuthRequest extends Request {
protected byte authAlgo; protected byte authAlgo;
protected byte[] doubleNonce; protected byte[] doubleNonce;
protected byte[] key = null; protected byte[] key = null;
protected byte authMode; protected byte deviceSupportType;
public GetAuthRequest(HuaweiSupportProvider support, public GetAuthRequest(HuaweiSupportProvider support,
Request linkParamsReq) { Request linkParamsReq) {
@ -56,16 +56,16 @@ public class GetAuthRequest extends Request {
.array(); .array();
this.authVersion = paramsProvider.getAuthVersion(); this.authVersion = paramsProvider.getAuthVersion();
this.authAlgo = paramsProvider.getAuthAlgo(); this.authAlgo = paramsProvider.getAuthAlgo();
this.authMode = paramsProvider.getAuthMode(); this.deviceSupportType = paramsProvider.getDeviceSupportType();
} }
@Override @Override
protected List<byte[]> createRequest() throws RequestCreationException { protected List<byte[]> createRequest() throws RequestCreationException {
huaweiCrypto = new HuaweiCrypto(authVersion, authAlgo, authMode); huaweiCrypto = new HuaweiCrypto(authVersion, authAlgo, deviceSupportType);
byte[] nonce; byte[] nonce;
try { try {
if (authMode == 0x02) { if (deviceSupportType == 0x02) {
key = paramsProvider.getPinCode(); key = paramsProvider.getPinCode();
if (authVersion == 0x02) if (authVersion == 0x02)
key = paramsProvider.getSecretKey(); key = paramsProvider.getSecretKey();

View File

@ -73,7 +73,7 @@ public class GetLinkParamsRequest extends Request {
throw new ResponseTypeMismatchException(receivedPacket, LinkParams.Response.class); throw new ResponseTypeMismatchException(receivedPacket, LinkParams.Response.class);
supportProvider.setProtocolVersion(((LinkParams.Response) receivedPacket).protocolVersion); supportProvider.setProtocolVersion(((LinkParams.Response) receivedPacket).protocolVersion);
paramsProvider.setAuthMode(((LinkParams.Response) receivedPacket).authMode); paramsProvider.setDeviceSupportType(((LinkParams.Response) receivedPacket).deviceSupportType);
paramsProvider.setSliceSize(((LinkParams.Response) receivedPacket).sliceSize); paramsProvider.setSliceSize(((LinkParams.Response) receivedPacket).sliceSize);
paramsProvider.setMtu(((LinkParams.Response) receivedPacket).mtu); paramsProvider.setMtu(((LinkParams.Response) receivedPacket).mtu);

View File

@ -42,7 +42,7 @@ public class GetSecurityNegotiationRequest extends Request {
try { try {
return new DeviceConfig.SecurityNegotiation.Request( return new DeviceConfig.SecurityNegotiation.Request(
paramsProvider, paramsProvider,
paramsProvider.getAuthMode(), paramsProvider.getDeviceSupportType(),
supportProvider.getAndroidId(), supportProvider.getAndroidId(),
Build.MODEL Build.MODEL
).serialize(); ).serialize();

View File

@ -29,7 +29,7 @@ public class TestHuaweiPacket {
HuaweiPacket.ParamsProvider paramsProvider = new HuaweiPacket.ParamsProvider() { HuaweiPacket.ParamsProvider paramsProvider = new HuaweiPacket.ParamsProvider() {
@Override @Override
public byte getAuthMode() { public byte getDeviceSupportType() {
return 0; return 0;
} }
@ -62,7 +62,7 @@ public class TestHuaweiPacket {
HuaweiPacket.ParamsProvider paramsProviderEncrypt = new HuaweiPacket.ParamsProvider() { HuaweiPacket.ParamsProvider paramsProviderEncrypt = new HuaweiPacket.ParamsProvider() {
@Override @Override
public byte getAuthMode() { public byte getDeviceSupportType() {
return 0; return 0;
} }
@ -95,7 +95,7 @@ public class TestHuaweiPacket {
HuaweiPacket.ParamsProvider paramsProviderSmallSlice = new HuaweiPacket.ParamsProvider() { HuaweiPacket.ParamsProvider paramsProviderSmallSlice = new HuaweiPacket.ParamsProvider() {
@Override @Override
public byte getAuthMode() { public byte getDeviceSupportType() {
return 0; return 0;
} }

View File

@ -26,7 +26,7 @@ public class TestHuaweiTLV {
HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() { HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() {
@Override @Override
public byte getAuthMode() { public byte getDeviceSupportType() {
return 0; return 0;
} }

View File

@ -29,7 +29,7 @@ public class TestAlarms {
HuaweiPacket.ParamsProvider paramsProvider = new HuaweiPacket.ParamsProvider() { HuaweiPacket.ParamsProvider paramsProvider = new HuaweiPacket.ParamsProvider() {
@Override @Override
public byte getAuthMode() { public byte getDeviceSupportType() {
return 0; return 0;
} }

View File

@ -42,7 +42,7 @@ public class TestDeviceConfig {
HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() { HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() {
@Override @Override
public byte getAuthMode() { public byte getDeviceSupportType() {
return 0; return 0;
} }

View File

@ -29,7 +29,7 @@ public class TestDisconnectNotification {
HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() { HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() {
@Override @Override
public byte getAuthMode() { public byte getDeviceSupportType() {
return 0; return 0;
} }

View File

@ -28,7 +28,7 @@ public class TestFindPhone {
HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() { HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() {
@Override @Override
public byte getAuthMode() { public byte getDeviceSupportType() {
return 0; return 0;
} }

View File

@ -30,7 +30,7 @@ public class TestFitnessData {
HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() { HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() {
@Override @Override
public byte getAuthMode() { public byte getDeviceSupportType() {
return 0; return 0;
} }

View File

@ -29,7 +29,7 @@ public class TestLocaleConfig {
HuaweiPacket.ParamsProvider paramsProvider = new HuaweiPacket.ParamsProvider() { HuaweiPacket.ParamsProvider paramsProvider = new HuaweiPacket.ParamsProvider() {
@Override @Override
public byte getAuthMode() { public byte getDeviceSupportType() {
return 0; return 0;
} }

View File

@ -32,7 +32,7 @@ public class TestMusicControl {
HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() { HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() {
@Override @Override
public byte getAuthMode() { public byte getDeviceSupportType() {
return 0; return 0;
} }

View File

@ -30,7 +30,7 @@ public class TestNotifications {
HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() { HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() {
@Override @Override
public byte getAuthMode() { public byte getDeviceSupportType() {
return 0; return 0;
} }

View File

@ -29,7 +29,7 @@ public class TestWorkMode {
HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() { HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() {
@Override @Override
public byte getAuthMode() { public byte getDeviceSupportType() {
return 0; return 0;
} }

View File

@ -30,7 +30,7 @@ public class TestWorkout {
HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() { HuaweiPacket.ParamsProvider secretsProvider = new HuaweiPacket.ParamsProvider() {
@Override @Override
public byte getAuthMode() { public byte getDeviceSupportType() {
return 0; return 0;
} }