001/* 002 * The contents of this file are subject to the terms of the Common Development and 003 * Distribution License (the License). You may not use this file except in compliance with the 004 * License. 005 * 006 * You can obtain a copy of the License at legal/CDDLv1.0.txt. See the License for the 007 * specific language governing permission and limitations under the License. 008 * 009 * When distributing Covered Software, include this CDDL Header Notice in each file and include 010 * the License file at legal/CDDLv1.0.txt. If applicable, add the following below the CDDL 011 * Header, with the fields enclosed by brackets [] replaced by your own identifying 012 * information: "Portions copyright [year] [name of copyright owner]". 013 * 014 * Copyright 2013-2016 ForgeRock AS. 015 */ 016 017package org.forgerock.json.jose.jwe; 018 019import java.util.Arrays; 020 021/** 022 * This class represents the result from the encryption process of the JWT plaintext. 023 * 024 * @since 2.0.0 025 */ 026public class JweEncryption { 027 028 private final byte[] ciphertext; 029 private final byte[] authenticationTag; 030 031 /** 032 * Constructs a new JweEncryption object with the given ciphertext and authentication tag. 033 * 034 * @param ciphertext The ciphertext. 035 * @param authenticationTag The authentication tag. 036 */ 037 public JweEncryption(byte[] ciphertext, byte[] authenticationTag) { 038 this.ciphertext = ciphertext; 039 this.authenticationTag = authenticationTag; 040 } 041 042 /** 043 * Gets the ciphertext from the result of the encryption. 044 * 045 * @return The ciphertext. 046 */ 047 public byte[] getCiphertext() { 048 return ciphertext; 049 } 050 051 /** 052 * Gets the authentication tag from the result of the encryption. 053 * 054 * @return The authentication tag. 055 */ 056 public byte[] getAuthenticationTag() { 057 return authenticationTag; 058 } 059 060 @Override 061 public boolean equals(final Object o) { 062 if (this == o) { 063 return true; 064 } 065 if (o == null || getClass() != o.getClass()) { 066 return false; 067 } 068 final JweEncryption that = (JweEncryption) o; 069 return Arrays.equals(ciphertext, that.ciphertext) && Arrays.equals(authenticationTag, that.authenticationTag); 070 } 071 072 @Override 073 public int hashCode() { 074 return Arrays.deepHashCode(new Object[] { ciphertext, authenticationTag }); 075 } 076}