package com.aspose.words;
|
|
import com.aspose.words.internal.zz29;
|
import com.aspose.words.internal.zz2H;
|
import com.aspose.words.internal.zz2I;
|
import com.aspose.words.internal.zz6M;
|
import com.aspose.words.internal.zz97;
|
import com.aspose.words.internal.zzQB;
|
import com.aspose.words.internal.zzZ;
|
import org.w3c.dom.Document;
|
import org.w3c.dom.Element;
|
import org.w3c.dom.Node;
|
import org.w3c.dom.NodeList;
|
|
import javax.xml.parsers.DocumentBuilder;
|
import javax.xml.parsers.DocumentBuilderFactory;
|
import java.io.ByteArrayInputStream;
|
import java.io.File;
|
import java.io.InputStream;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.Date;
|
|
/**
|
* 破解aspose-word
|
* @author weidy
|
*/
|
final class zzZLS
|
{
|
private String[] zzYRe;
|
private String zzYRd;
|
private Date zzYRc;
|
private Date zzYRb;
|
|
final void zzY(String var1, Class var2)
|
throws Exception
|
{
|
if (!"".equals(var1)) {
|
zz2H var10000;
|
File var8;
|
if ((var8 = new File(var1)).exists()) {
|
var10000 = new zz2H(var8);
|
} else {
|
String var9 = zz29.zzC(this.getClass());
|
if ((var8 = new File(var9, var1)).exists()) {
|
var10000 = new zz2H(var8);
|
} else {
|
var9 = zz29.zzC(var2);
|
if (!(var8 = new File(var9, var1)).exists()) {
|
throw new IllegalStateException("Cannot find license '" + var1 + "'.");
|
}
|
|
var10000 = new zz2H(var8);
|
}
|
}
|
|
zz2H var3 = var10000;
|
|
try {
|
this.zzW(var3);
|
} finally {
|
var3.close();
|
}
|
} else {
|
zzYR9 = this;
|
}
|
}
|
|
final void zzW(InputStream paramInputStream)
|
throws Exception
|
{
|
this.zzYRa = 1;zzYR9 = this;
|
}
|
|
static int zzZIV()
|
{
|
return 1;
|
}
|
|
static int zzZIU()
|
{
|
return 1;
|
}
|
|
private void zzV(InputStream paramInputStream)
|
throws Exception
|
{
|
byte[] arrayOfByte1 = zzZ.getBytesFromStream(paramInputStream);byte[] arrayOfByte2 = zz6M.zzZ(zz6M.zzBZ(), zz6M.zzUF(1252), arrayOfByte1);
|
DocumentBuilderFactory localDocumentBuilderFactory;
|
DocumentBuilder localDocumentBuilder;
|
Document localDocument;
|
Element localElement1;
|
Element localElement2 = zzX(localElement1 = (localDocument = (localDocumentBuilder = (localDocumentBuilderFactory = zz97.zzEc()).newDocumentBuilder()).parse(new ByteArrayInputStream(arrayOfByte2))).getDocumentElement(), "Data");Element localElement3 = zzX(localElement1, "Signature");zzZ(localElement2, localElement3);
|
Element localElement4;
|
NodeList localNodeList = (localElement4 = zzX(localElement2, "Products")).getElementsByTagName("Product");this.zzYRe = new String[localNodeList.getLength()];
|
for (int i = 0; i < this.zzYRe.length; i++) {
|
this.zzYRe[i] = localNodeList.item(i).getFirstChild().getNodeValue();
|
}
|
String str = zzZ(localElement2, "EditionType");
|
if ((!"Professional".equals(str)) && (!"Enterprise".equals(str))) {
|
throw new IllegalStateException("Invalid edition type.");
|
}
|
this.zzYRd = zzZ(localElement2, "SerialNumber");this.zzYRc = zzY(localElement2, "SubscriptionExpiry");this.zzYRb = zzY(localElement2, "LicenseExpiry");
|
}
|
|
private static void zzZ(Node var0, Node var1)
|
throws Exception
|
{
|
byte[] var2;
|
if (var0 != null) {
|
StringBuilder var3;
|
zzZ(var3 = new StringBuilder(), var0);
|
var2 = var3.toString().getBytes("UTF-16LE");
|
} else {
|
var2 = new byte[0];
|
}
|
|
byte[] var6;
|
if (var1 != null) {
|
var6 = zz2I.decode(var1.getFirstChild().getNodeValue());
|
} else {
|
var6 = new byte[0];
|
}
|
|
zzZ(var2, var6, "0nRuwNEddXwLfXB7pw66G71MS93gW8mNzJ7vuh3Sf4VAEOBfpxtHLCotymv1PoeukxYe31K441Ivq0Pkvx1yZZG4O1KCv3Omdbs7uqzUB4xXHlOub4VsTODzDJ5MWHqlRCB1HHcGjlyT2sVGiovLt0Grvqw5+QXBuinoBY0suX0=");
|
if (zzYS0.zzZ9e() > 0) {
|
zzYS0.clear();
|
zzZ(var2, var6, "qKFqqhFovZvEYCHeD3N8Oy+AuxrOA8cVvIl4u4qIBMQlzejGyXkiTUjoryuzlhlS2bG80FGmFsH+wUKbYiEkW/4zseZCV/Ej/usbu6yHACQKO/SCy3pYw68Pcv901pvywUnoaYCI2ccCG29+XM+FwpFQuiPb2H7YbI/++SQs6Hk=");
|
}
|
|
if (zzYS0.zzZ9e() > 0) {
|
zzYS0.clear();
|
zzZ(var2, var6, "3ki45T6C4lt12J5MbKfrADBCZcE8OTefdngc9IDKg+lzCGYLuxJFDt16awhJFnA23sX+kQ4/eZQ5pNAYjc+ZJ0+pWwvQR4h8GJ3eWvecdFs7KSWwNmFXZCSN+sbrxwEjzzns1kIHuLNf5r+Zaggns+8rqXR19RSJBOcuFqVipIHv56lF53Hc+hx+y9URIaadO1W8dkTqgwExyfjnbDOaCBEH0CqUL1YIICS/wIUTEKhM0ZlwEcIcHl8XTHLVx96DMX4bbVajj78L4KzevQc442DX28KGDJTveEB1pSKWsr0d4FTx7wKS36RBnWv5lwsRErtTZb5ciVIG1iIJrp87VQ==");
|
}
|
}
|
|
private static void zzZ(byte[] paramArrayOfByte1, byte[] paramArrayOfByte2, String paramString)
|
throws Exception
|
{
|
String str;
|
byte[] arrayOfByte1 = zz2I.decode(str = "AQAB");
|
byte[] arrayOfByte2 = zz2I.decode(str = paramString);
|
zzZ3V localzzZ3V;
|
(localzzZ3V = new zzZ3V(arrayOfByte2, arrayOfByte1)).zzS(paramArrayOfByte1, paramArrayOfByte2);
|
}
|
|
private static synchronized zzQB<String> zzPl(String paramString)
|
throws Exception
|
{
|
InputStream localInputStream;
|
if ((localInputStream = License.class.getResourceAsStream("/com/aspose/words/resources/" + paramString + ".Real.xml")) == null) {
|
throw new IllegalStateException("Cannot find black listed licenses resource. Please report this error to Aspose.");
|
}
|
try
|
{
|
DocumentBuilderFactory localDocumentBuilderFactory;
|
DocumentBuilder localDocumentBuilder;
|
Document localDocument;
|
Element localElement1;
|
Element localElement2 = zzX(localElement1 = (localDocument = (localDocumentBuilder = (localDocumentBuilderFactory = zz97.zzEc()).newDocumentBuilder()).parse(localInputStream)).getDocumentElement(), "Data");Element localElement3 = zzX(localElement1, "Signature");zzZ(localElement2, localElement3);zzQB localzzQB1 = new zzQB();
|
|
NodeList localNodeList = localElement2.getElementsByTagName("SN");
|
for (int i = 0; i < localNodeList.getLength(); i++) {
|
localzzQB1.add(localNodeList.item(i).getFirstChild().getNodeValue());
|
}
|
return localzzQB1;
|
}
|
finally
|
{
|
localInputStream.close();
|
}
|
}
|
|
private static String zzZ(Element paramElement, String paramString)
|
{
|
Element localElement;
|
if ((localElement = zzX(paramElement, paramString)) != null) {
|
return localElement.getFirstChild().getNodeValue();
|
}
|
return "";
|
}
|
|
private static Date zzY(Element paramElement, String paramString)
|
throws ParseException
|
{
|
String str = zzZ(paramElement, paramString);
|
if (!"".equals(str)) {
|
return new SimpleDateFormat("yyyyMMdd").parse(str);
|
}
|
return new Date(253402300799999L);
|
}
|
|
private static Element zzX(Element paramElement, String paramString)
|
{
|
NodeList localNodeList;
|
if ((localNodeList = paramElement.getElementsByTagName(paramString)).getLength() > 0) {
|
return (Element)localNodeList.item(0);
|
}
|
return null;
|
}
|
|
private static void zzZ(StringBuilder paramStringBuilder, Node paramNode)
|
{
|
if (paramNode.getNodeType() == 1)
|
{
|
paramStringBuilder.append('<');paramStringBuilder.append(paramNode.getNodeName());paramStringBuilder.append('>');
|
NodeList localNodeList1;
|
NodeList localNodeList2;
|
Node localNode2;
|
if ((((localNodeList2 = localNodeList1 = paramNode.getChildNodes()) != null) && (localNodeList2.getLength() == 1) && ((localNode2 = localNodeList2.item(0)) != null) && (localNode2.getNodeType() == 3) ? 1 : 0) != 0)
|
{
|
Node localNode1;
|
String str = (str = (str = (str = (localNode1 = localNodeList1.item(0)).getNodeValue()).replace("&", "&")).replace("<", "<")).replace(">", ">");paramStringBuilder.append(str);
|
}
|
else
|
{
|
for (int i = 0; i < localNodeList1.getLength(); i++) {
|
zzZ(paramStringBuilder, localNodeList1.item(i));
|
}
|
}
|
paramStringBuilder.append('<');paramStringBuilder.append('/');
|
|
paramStringBuilder.append(paramNode.getNodeName());paramStringBuilder.append('>');
|
}
|
}
|
|
private int zzYRa = 0;
|
private static zzZLS zzYR9 = null;
|
private static zzQB<String> zzYR8;
|
private static zzQB<String> zzYR7;
|
}
|