public static string CreateSerial(string license, string macAddress, string application, string module, SerialType sType, DateTime expiration, string pendrive) { string serial = string.Empty; concat(ref serial, ConvertString(application) + ConvertString(module)); if (sType.HasFlag(SerialType.LICENSE_NAME)) { concat(ref serial, ConvertString(license)); } if (sType.HasFlag(SerialType.MAC_ADDRESS)) { concat(ref serial, ConvertMacAddress(macAddress)); } if (sType.HasFlag(SerialType.EXPIRATION_DATE)) { concat(ref serial, ConvertToString((UInt64)(expiration.Year * 365 + expiration.Month * 31 + expiration.Day))); } if (sType.HasFlag(SerialType.PEN_DRIVE)) { var letter = USBSerialNumber.GetDriveLetterFromName(pendrive); concat(ref serial, ConvertSerialNumber(USBSerialNumber.getSerialNumberFromDriveLetter(letter))); } if (sType.HasFlag(SerialType.TRIAL)) { concat(ref serial, ConvertString("TRIAL VERSION")); } // Checksum concat(ref serial, ConvertString(serial)); return(serial); }
private static bool CheckSerialType(SerialModule sm) { int pos = 1; var parts = sm.SerialNo.Split(new char[] { '-' }); if (sm.SerialType.HasFlag(SerialType.LICENSE_NAME)) { if (parts[pos++] != ConvertString(SerialData.License)) { return(false); } } if (sm.SerialType.HasFlag(SerialType.MAC_ADDRESS)) { if (parts[pos++] != ConvertMacAddress(macAddres)) { return(false); } } //if (sm.SerialType.HasFlag(SerialType.EXPIRATION_DATE)) // if (ConvertFromString(parts[pos++]) < (UInt64)(GlobalInfo.CurrentDate.Year * 365 + GlobalInfo.CurrentDate.Month * 31 + GlobalInfo.CurrentDate.Day)) // return false; if (sm.SerialType.HasFlag(SerialType.PEN_DRIVE)) { string letter = USBSerialNumber.GetDriveLetterFromName(SerialData.PenDrive); if (letter == string.Empty || parts[pos++] != ConvertSerialNumber(USBSerialNumber.getSerialNumberFromDriveLetter(letter))) { return(false); } } return(true); }