Elliptive Curve Cryptography using ALG_EC_FP
naraJan 21 2013 — edited Jan 25 2013Hi,
I am a newbie in this domain.
I am trying to Generate ECC key pair to Sign and Verify using the above program, but with the ALG_EC_FP and KeyBuilder Size LENGTH_EC_FP_256. But it fails during the genKeyPair() call with the return value 1 indicating that its an illegal value. Can you please help me why i am getting this error?
I am using the JCOP 2.4.2 R2 Card.
The Filed,A,B,G,S,R,W,K,N values are as shown below.
byte[] valA= {(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x01,
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,
(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,
(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFC};
byte[] valFP = {(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x01,
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,
(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,
(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF};
byte[] valB={(byte)0x5A,(byte)0xC6,(byte)0x35,(byte)0xDB,
(byte)0xAA,(byte)0x3A,(byte)0x93,(byte)0xE7,
(byte)0xB3,(byte)0xEB,(byte)0xBD,(byte)0x55,
(byte)0x76,(byte)0x98,(byte)0x86,(byte)0xBC,
(byte)0x65,(byte)0x1D,(byte)0x06,(byte)0xB0,
(byte)0xCC,(byte)0x53,(byte)0xB0,(byte)0xF6,
(byte)0x3B,(byte)0xCE,(byte)0x3C,(byte)0x3E,
(byte)0x27,(byte)0xD2,(byte)0x60,(byte)0x4B};
byte[] valG={(byte)0x04,(byte)0x6B,(byte)0x17,(byte)0xD1,(byte)0xF2,
(byte)0xE1,(byte)0x2C,(byte)0x42,(byte)0x47,
(byte)0xF8,(byte)0xBC,(byte)0xE6,(byte)0xE5,
(byte)0x63,(byte)0xA4,(byte)0x40,(byte)0xF2,
(byte)0x77,(byte)0x03,(byte)0x7D,(byte)0x81,
(byte)0x2D,(byte)0xEB,(byte)0x33,(byte)0xA0,
(byte)0xF4,(byte)0xA1,(byte)0x39,(byte)0x45,
(byte)0xD8,(byte)0x98,(byte)0xC2,(byte)0x96,
(byte)0x4F,(byte)0xE3,(byte)0x42,(byte)0xE2,
(byte)0xFE,(byte)0x1A,(byte)0x7F,(byte)0x9B,
(byte)0x8E,(byte)0xE7,(byte)0xEB,(byte)0x4A,
(byte)0x7C,(byte)0x0F,(byte)0x9E,(byte)0x16,
(byte)0x2B,(byte)0xCE,(byte)0x33,(byte)0x57,
(byte)0x6B,(byte)0x31,(byte)0x5E,(byte)0xCE,
(byte)0xCB,(byte)0xB6,(byte)0x40,(byte)0x68,
(byte)0x37,(byte)0xBF,(byte)0x51,(byte)0xF5};
byte[] valN={(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,
(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x00,
(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,
(byte)0xFF,(byte)0xFF,(byte)0xFF,(byte)0xFF,
(byte)0xBC,(byte)0xE6,(byte)0xFA,(byte)0xAD,
(byte)0xA7,(byte)0x17,(byte)0x9E,(byte)0x84,
(byte)0xF3,(byte)0xB9,(byte)0xCA,(byte)0xC2,
(byte)0xFC,(byte)0x63,(byte)0x25,(byte)0x51,};
byte[] valW={(byte)0x04,(byte)0x6B,(byte)0x17,(byte)0xD1,(byte)0xF2,
(byte)0xE1,(byte)0x2C,(byte)0x42,(byte)0x47,
(byte)0xF8,(byte)0xBC,(byte)0xE6,(byte)0xE5,
(byte)0x63,(byte)0xA4,(byte)0x40,(byte)0xF2,
(byte)0x77,(byte)0x03,(byte)0x7D,(byte)0x81,
(byte)0x2D,(byte)0xEB,(byte)0x33,(byte)0xA0,
(byte)0xF4,(byte)0xA1,(byte)0x39,(byte)0x45,
(byte)0xD8,(byte)0x98,(byte)0xC2,(byte)0x96,
(byte)0x4F,(byte)0xE3,(byte)0x42,(byte)0xE2,
(byte)0xFE,(byte)0x1A,(byte)0x7F,(byte)0x9B,
(byte)0x8E,(byte)0xE7,(byte)0xEB,(byte)0x4A,
(byte)0x7C,(byte)0x0F,(byte)0x9E,(byte)0x16,
(byte)0x2B,(byte)0xCE,(byte)0x33,(byte)0x57,
(byte)0x6B,(byte)0x31,(byte)0x5E,(byte)0xCE,
(byte)0xCB,(byte)0xB6,(byte)0x40,(byte)0x68,
(byte)0x37,(byte)0xBF,(byte)0x51,(byte)0xF5};
byte[] valS={(byte)0xC4,(byte)0x9D,(byte)0x36,(byte)0x08,
(byte)0x86,(byte)0xE7,(byte)0x04,(byte)0x93,
(byte)0x6A,(byte)0x66,(byte)0x78,(byte)0xE1,
(byte)0x13,(byte)0x9D,(byte)0x26,(byte)0xB7,
(byte)0x81,(byte)0x9F,(byte)0x7E,(byte)0x90};
short k = (short)0x01;
any help in this regard will be very much appreciated.
Thanks in advance
Nara