home *** CD-ROM | disk | FTP | other *** search
- package webeq3;
-
- import java.util.Date;
-
- public class License {
- private static int[] signature = new int[]{12, 45, 64, 23, 22, 31, 45, 21};
- private static int IN_COOKIE = 853973;
- private static int OUT_COOKIE = 115572;
- int cookie;
- private boolean goodcookie;
- private String key;
-
- public License(int var1) {
- this.goodcookie = false;
- this.setCookie(var1);
- }
-
- public License(String var1, int var2) {
- this(var2);
- this.key = var1;
- }
-
- public void setCookie(int var1) {
- this.cookie = var1;
- this.goodcookie = var1 == IN_COOKIE;
- }
-
- public int getCookie() {
- return this.cookie;
- }
-
- public void setDSIKey(String var1) {
- if (this.goodcookie) {
- this.key = var1 + "-" + this.getRegNumSuffix(var1);
- }
-
- }
-
- public void setKeyFromDateAndString(String var1, String var2) {
- if (this.goodcookie) {
- Date var3 = stringToDate(var1);
- this.key = this.makeKey(var3, var2);
- }
-
- }
-
- public void setKeyFromDateAndString(Date var1, String var2) {
- if (this.goodcookie) {
- this.key = this.makeKey(var1, var2);
- }
-
- }
-
- public String getKey() {
- return this.goodcookie ? this.key : "";
- }
-
- public boolean keyIsValid() {
- if (this.keyIsEval()) {
- try {
- if (this.key == null) {
- return false;
- } else {
- int var1 = this.key.length();
- if (var1 < 10) {
- return false;
- } else {
- int var2;
- try {
- var2 = Integer.parseInt(this.key.substring(8, 10));
- } catch (NumberFormatException var6) {
- return false;
- }
-
- if (var1 < 10 + var2) {
- return false;
- } else {
- String var3 = this.key.substring(0, 10 + var2);
- String var4 = var3 + this.encode(var3);
- this.setCookie(OUT_COOKIE);
- boolean var5 = this.key.equals(var4);
- return var5;
- }
- }
- }
- } catch (Exception var7) {
- ((Throwable)var7).printStackTrace();
- return false;
- }
- } else {
- this.setCookie(OUT_COOKIE);
- return this.key.length() == 12 && this.key.substring(0, 3).equals("625") && this.isNumeric(this.key.substring(0, 8)) && this.isNumeric(this.key.substring(9, 12)) && this.key.charAt(8) == '-' && this.getRegNumSuffix(this.key.substring(0, 8)).equals(this.key.substring(9, 12));
- }
- }
-
- public boolean keyIsEval() {
- try {
- if (this.key == null) {
- return false;
- } else {
- int var1 = this.key.length();
- if (var1 < 10) {
- return false;
- } else {
- int var2;
- try {
- var2 = Integer.parseInt(this.key.substring(8, 10));
- } catch (NumberFormatException var5) {
- return false;
- }
-
- if (var2 >= 0 && var1 >= 10 + var2) {
- String var3 = this.key.substring(10, 10 + var2);
- this.setCookie(OUT_COOKIE);
- boolean var4 = var3.equals("DSEval");
- return var4;
- } else {
- return false;
- }
- }
- }
- } catch (Exception var6) {
- ((Throwable)var6).printStackTrace();
- return false;
- }
- }
-
- public boolean keyIsCurrent() {
- if (!this.keyIsEval()) {
- return true;
- } else {
- try {
- if (this.key == null) {
- return false;
- } else {
- Date var1 = stringToDate(this.key);
- var1.setDate(var1.getDate() + 1);
- Date var2 = new Date();
- this.setCookie(OUT_COOKIE);
- return var2.before(var1);
- }
- } catch (Exception var3) {
- return false;
- }
- }
- }
-
- public int[] getSignature() {
- return this.goodcookie ? signature : null;
- }
-
- private static Date stringToDate(String var0) {
- int var1 = Integer.parseInt(var0.substring(0, 4)) - 1900;
- int var2 = Integer.parseInt(var0.substring(4, 6)) - 1;
- int var3 = Integer.parseInt(var0.substring(6, 8));
- String var4 = System.getProperty("os.name");
- if (var4.equals("Mac OS")) {
- --var3;
- }
-
- return new Date(var1, var2, var3);
- }
-
- private String encode(String var1) {
- char[] var3 = var1.toCharArray();
- int var4 = var3.length / 2 + var3.length % 2;
- char[] var5 = new char[var4];
-
- for(int var2 = 0; var2 < var4; ++var2) {
- var5[var2] = var3[var2];
- if (var2 + var4 < var3.length) {
- var5[var2] += var3[var3.length - 1 - var2];
- }
- }
-
- for(int var14 = 0; var14 < var5.length; ++var14) {
- var5[var14] = (char)(var5[var14] + signature[var14 % signature.length]);
- }
-
- byte var6 = 3;
- int var7 = var5.length / var6;
- int var8 = var5.length % var6;
- int var9 = var7 + (var8 == 0 ? 0 : 1);
- int[] var10 = new int[var9];
-
- for(int var15 = 0; var15 < var9; ++var15) {
- var10[var15] = 0;
-
- for(int var11 = 0; var11 < var6; ++var11) {
- if (var15 * var6 + var11 < var5.length) {
- var10[var15] += var5[var15 * var6 + var11];
- }
- }
- }
-
- String var12 = "";
-
- for(int var16 = 0; var16 < var9; ++var16) {
- String var13 = toHexString(var10[var16]);
- var12 = var12 + var13;
- }
-
- return var12;
- }
-
- private String intString(int var1, int var2) {
- boolean var3 = var1 < 0;
- if (var3) {
- var1 = -var1;
- }
-
- String var4 = Integer.toString(var1);
- int var5 = var2 - var4.length();
- if (var3) {
- --var5;
- }
-
- for(int var6 = 0; var6 < var5; ++var6) {
- var4 = "0" + var4;
- }
-
- if (var3) {
- var4 = "-" + var4;
- }
-
- return var4;
- }
-
- private String dateString(Date var1) {
- int var2 = var1.getYear() + 1900;
- int var3 = var1.getMonth() + 1;
- int var4 = var1.getDate();
- return this.intString(var2, 4) + this.intString(var3, 2) + this.intString(var4, 2);
- }
-
- private String makeKey(Date var1, String var2) {
- String var3 = this.dateString(var1);
- if (var2.length() > 99) {
- var2 = var2.substring(0, 99);
- }
-
- var3 = var3 + this.intString(var2.length(), 2);
- var3 = var3 + var2;
- String var4 = this.encode(var3);
- var3 = var3 + var4;
- return var3;
- }
-
- private static String toHexString(int var0) {
- String[] var1 = new String[]{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"};
- String var2 = "";
- int var3 = 16;
- int var4 = 1;
- int var5 = 0;
- if (var0 == 0) {
- var2 = "0";
- } else {
- while(var0 > 0) {
- var5 = var0 % var3 / var4;
- var2 = var1[var5] + var2;
- var0 -= var5 * var4;
- var4 = var3;
- var3 *= 16;
- }
- }
-
- return var2;
- }
-
- private String getRegNumSuffix(String var1) {
- long var2;
- try {
- var2 = Long.parseLong(var1);
- } catch (NumberFormatException var5) {
- return "0";
- }
-
- var2 = (var2 % 137L + 1L) * (var2 % 97L + 1L) * 101L;
- var2 = var2 % 899L + 101L;
- return (new Long(var2)).toString();
- }
-
- private boolean isNumeric(String var1) {
- try {
- Integer.parseInt(var1);
- return true;
- } catch (NumberFormatException var3) {
- return false;
- }
- }
- }
-