diff options
Diffstat (limited to 'src/main/java/com/google/security/cryptauth/lib/securegcm/D2DDiffieHellmanKeyExchangeHandshake.java')
-rw-r--r-- | src/main/java/com/google/security/cryptauth/lib/securegcm/D2DDiffieHellmanKeyExchangeHandshake.java | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/src/main/java/com/google/security/cryptauth/lib/securegcm/D2DDiffieHellmanKeyExchangeHandshake.java b/src/main/java/com/google/security/cryptauth/lib/securegcm/D2DDiffieHellmanKeyExchangeHandshake.java index f929a3a..ae43d90 100644 --- a/src/main/java/com/google/security/cryptauth/lib/securegcm/D2DDiffieHellmanKeyExchangeHandshake.java +++ b/src/main/java/com/google/security/cryptauth/lib/securegcm/D2DDiffieHellmanKeyExchangeHandshake.java @@ -1,17 +1,17 @@ -// Copyright 2020 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - +/* Copyright 2018 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.google.security.cryptauth.lib.securegcm; import com.google.protobuf.InvalidProtocolBufferException; @@ -64,6 +64,11 @@ import javax.crypto.SecretKey; * </pre> */ public class D2DDiffieHellmanKeyExchangeHandshake implements D2DHandshakeContext { + // Data passed to hkdf to create the key used by the initiator to encode messages. + private static final String INITIATOR_PURPOSE = "initiator"; + // Data passed to hkdf to create the key used by the responder to encode messages. + private static final String RESPONDER_PURPOSE = "responder"; + private KeyPair ourKeyPair; private PublicKey theirPublicKey; private SecretKey initiatorEncodeKey; @@ -171,10 +176,8 @@ public class D2DDiffieHellmanKeyExchangeHandshake implements D2DHandshakeContext responderEncodeKey = masterKey; break; case D2DConnectionContextV1.PROTOCOL_VERSION: - initiatorEncodeKey = D2DCryptoOps.deriveNewKeyForPurpose(masterKey, - D2DCryptoOps.INITIATOR_PURPOSE); - responderEncodeKey = D2DCryptoOps.deriveNewKeyForPurpose(masterKey, - D2DCryptoOps.RESPONDER_PURPOSE); + initiatorEncodeKey = D2DCryptoOps.deriveNewKeyForPurpose(masterKey, INITIATOR_PURPOSE); + responderEncodeKey = D2DCryptoOps.deriveNewKeyForPurpose(masterKey, RESPONDER_PURPOSE); break; default: throw new IllegalStateException("Unexpected protocol version: " + protocolVersionToUse); @@ -235,10 +238,8 @@ public class D2DDiffieHellmanKeyExchangeHandshake implements D2DHandshakeContext initiatorEncodeKey = masterKey; responderEncodeKey = masterKey; } else { - initiatorEncodeKey = D2DCryptoOps.deriveNewKeyForPurpose(masterKey, - D2DCryptoOps.INITIATOR_PURPOSE); - responderEncodeKey = D2DCryptoOps.deriveNewKeyForPurpose(masterKey, - D2DCryptoOps.RESPONDER_PURPOSE); + initiatorEncodeKey = D2DCryptoOps.deriveNewKeyForPurpose(masterKey, INITIATOR_PURPOSE); + responderEncodeKey = D2DCryptoOps.deriveNewKeyForPurpose(masterKey, RESPONDER_PURPOSE); } DeviceToDeviceMessage message = |