public byte[] decrypt(byte[] p7, byte[] p8)
    {
        if (p7.length < 28) {
            throw new java.security.GeneralSecurityException(ciphertext too short);
        } else {
            ThreadLocal v2 = com.google.crypto.tink.subtle.AesGcmJce.localCipher;
            ((javax.crypto.Cipher) v2.get()).init(2, this.keySpec, com.google.crypto.tink.subtle.AesGcmJce.getParams(p7, 0, 12));
            if ((p8 != null) && (p8.length != 0)) {
                ((javax.crypto.Cipher) v2.get()).updateAAD(p8);
            }
            return ((javax.crypto.Cipher) v2.get()).doFinal(p7, 12, (p7.length - 12));
        }
    }