17c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet/* 27c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * Copyright (C) 2009 Google Inc. All rights reserved. 37c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * 47c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * Licensed under the Apache License, Version 2.0 (the "License"); 57c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * you may not use this file except in compliance with the License. 67c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * You may obtain a copy of the License at 77c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * 87c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * http://www.apache.org/licenses/LICENSE-2.0 97c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * 107c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * Unless required by applicable law or agreed to in writing, software 117c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * distributed under the License is distributed on an "AS IS" BASIS, 127c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * See the License for the specific language governing permissions and 147c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * limitations under the License. 157c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet */ 167c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 177c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichetpackage com.google.polo.pairing.message; 187c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 197c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichetimport com.google.polo.pairing.PoloUtil; 207c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 217c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichetimport java.util.Arrays; 227c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 237c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet/** 247c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * Object implementing the internal representation of the protocol message 257c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet * 'SECRET_ACK'. 267c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet */ 277c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichetpublic class SecretAckMessage extends PoloMessage { 287c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 297c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet private byte[] mSecret; 307c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 317c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet public SecretAckMessage(byte[] secret) { 327c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet super(PoloMessage.PoloMessageType.SECRET_ACK); 337c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet mSecret = secret; 347c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet } 357c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 367c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet public byte[] getSecret() { 377c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet return mSecret; 387c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet } 397c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 407c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet @Override 417c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet public String toString() { 427c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet StringBuilder ret = new StringBuilder(); 437c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet ret.append("["); 447c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet ret.append(getType()); 457c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet ret.append(" secret="); 467c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet ret.append(PoloUtil.bytesToHexString(mSecret)); 477c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet ret.append("]"); 487c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet return ret.toString(); 497c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet } 507c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 517c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet @Override 527c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet public boolean equals(Object obj) { 537c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet if (this == obj) { 547c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet return true; 557c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet } 567c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 577c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet if (!(obj instanceof SecretAckMessage)) { 587c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet return false; 597c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet } 607c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 617c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet SecretAckMessage other = (SecretAckMessage) obj; 627c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet return Arrays.equals(mSecret, other.mSecret); 637c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet } 647c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet 657c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet} 66