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'.
267c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet */
277c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichetpublic class SecretMessage extends PoloMessage {
287c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet
297c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  private byte[] mSecret;
307c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet
317c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  public SecretMessage(byte[] secret) {
327c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet    super(PoloMessage.PoloMessageType.SECRET);
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 SecretMessage)) {
587c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet      return false;
597c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet    }
607c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet
617c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet    SecretMessage other = (SecretMessage) obj;
627c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet    return Arrays.equals(mSecret, other.mSecret);
637c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet  }
647c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet
657c9978567a202d6aa98beac5da5e1b3b34792862Jerome Poichet}
66