/** * Copyright (C) 2014 Open Whisper Systems * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package org.whispersystems.libaxolotl; import org.whispersystems.libaxolotl.ecc.Curve; import org.whispersystems.libaxolotl.ecc.ECPublicKey; import org.whispersystems.libaxolotl.util.Hex; /** * A class for representing an identity key. * * @author Moxie Marlinspike */ public class IdentityKey { private final ECPublicKey publicKey; public IdentityKey(ECPublicKey publicKey) { this.publicKey = publicKey; } public IdentityKey(byte[] bytes, int offset) throws InvalidKeyException { this.publicKey = Curve.decodePoint(bytes, offset); } public ECPublicKey getPublicKey() { return publicKey; } public byte[] serialize() { return publicKey.serialize(); } public String getFingerprint() { return Hex.toString(publicKey.serialize()); } @Override public boolean equals(Object other) { if (other == null) return false; if (!(other instanceof IdentityKey)) return false; return publicKey.equals(((IdentityKey) other).getPublicKey()); } @Override public int hashCode() { return publicKey.hashCode(); } }