hi!

  palm-dev-forum: this mail is being posted ONLY once, since it
                  is not a 'direct' palmos posting, please dont
                  send replies to this message to the forum. It
                  is an issue for developers, hence it has been
                  sent here.

  Kenny, Andrew.. i am sending this to BOTH of you now, so
  i dont show any bias towards PGHQ or PalmCentral when offering
  my services to get something implemented that should have 
  been done a LONG time ago - and something which developers
  have probably wished for a while.

  BACKGROUND:
  ===========

  Currently (as of 23-Aug-99), any real time fulfillments can 
  ONLY be done by a developer that uses a SERIAL number, or 
  issues seperate registered and shareware versions of their
  software.

  The problem with this is the issue of 'piracy'. Having no
  method to ensure that the purchaser can only use the program
  on thier OWN hardware is an issue when it comes to the 
  developer feeling secure about the distribution of his/her
  software.

  I personally use the 'HotSync UserID' of a palm user to 
  generate a registration code. This allows ONLY that user
  to use the program with that specific registration code
  (it means they cannot give a copy to their friends etc).

  WHATS IN THE WORKS:
  ===================

  PalmCentral and PGHQ working on an implementation of the 
  RegCode code generation system. This may help a lot
  of developers, however it does not suit everyone (including
  myself).

  It is not wise to use a 'common' technique for registrations.
  Hackers love cracking.. If all developers use the same technique
  for registration schemes, then all a hacker needs to do is 
  identify a particular signature (byte codes) and then they
  know exactly where to find the 'code generating' algorithm.

  I personally use a custom system, which will NOT be compatable
  with the RegCode implementation. Not everyone uses this 
  technique - so you only make a few developers happy (and 
  forcing people to use RegCode is not nice).

  WHAT I PROPOSE:
  ===============

  I have mentioned this to both PGHQ and PalmCentral, and ALSO
  the palm-dev-forum mailing list - i got a few responses from
  the developers, but not much from the 'commercial' side.

  I have developed a Java based system for registration schemes.

  Java = Platform Independant etc. etc. etc.. 
       - see http://java.sun.com/ for marketing info and other
         jargon.

  But this is the theory:

    a) developers write custom .class files which implement their
       regcode algorithms.

       + they dont need to supply the source code to anyone
       + they can 'obfuscate' the classes, to prevent decompilation
         by anyone.

       - they need to know a LITTLE bit of Java 
         (well, C/C++ is good enough) - and since the majority of
         people use C anyhow, this should not be a problem.

    b) commercial distributers use the .class files during purchases,
       executing them to generate a custom registration code from
       the userID being given from the customer.

       + Java = secure
         With the use of a Security Manager, the commercial distributer
         can SAFELY execute the .class files on his/her server
       + Java = dynamic
         You dont need to reboot your machine after you install a new
         .class file - Java will load it dynamically.

       - they need to store the .class files on their server
         (which are very small anyhow)

  They key behind all this is that the developer has to write a 
  Java class which implements the following Interface:

---
public interface Function
{
  public String generateCode(String userID);
}
---

  for example:

---
public class Testing
  implements Function
{
  public String generateCode(String userID)
  {
    short result;

    result = (short)0x0000;
    for (int i=0; (i < userID.length()) && (userID.charAt(i) != ' '); i++)
    {
      result += (byte)userID.charAt(i);
    }

    return "" + result;
  }
}
---

  As you can see, the core of Java is simply C (or C++).. it
  does not get any harder than above.

  It will be very easy to develop another class called 
  "RegCodeFunction" that has an implementation for the RegCode
  algorithm scheme. It can be easially generated so that developers
  of this scheme simply define their 'FUNCTION' inside the class,
  and the Java does the rest.

  I have developed a prototype which performs this 'dynamic' 
  loading of the class files.

---
boxman(ardiri): java JRegCode Testing ardiri
JRegCode v1.0
(c) Aaron Ardiri

Testing
userID:  ardiri
regCode: 635

boxman(ardiri):
---

  Interested in getting it implemented on your servers? You will
  reach a LOT more developers for real time fulfillment. 

  As a developer (for those on the palm-dev-forum), how do you
  feel about this scheme? Do you think you would use it? What 
  do you think can be done to improve it etc? When would you
  like to see it?

  Send comments directly to myself at "[EMAIL PROTECTED]"

  I am willing to write a tutorial of how to write your own
  custom routines (remember, Java has slightly different
  data types from C), and help get the code on your servers.

  You both NOW have my contact details. I am willing to help get
  this implemented - all you have to do is contact me. My contact
  number is:

    +46 70 656 1143 

  and i am available all the time. 

  cheers.

az.
--
Aaron Ardiri 
Java Lecturer                  http://www.hig.se/~ardiri/
University-College i G�vle     mailto:[EMAIL PROTECTED]
SE 801 76 G�vle SWEDEN       
Tel: +46 26 64 87 38           Fax: +46 26 64 87 88
Mob: +46 70 656 1143           A/H: +46 26 10 16 11


Reply via email to