tjrandgenerator.java

来自「智能卡多应用一直是业界的重要课题」· Java 代码 · 共 67 行

JAVA
67
字号
/**
 *        Title:  Random generator
 *
 *      Project:  Universal Application Specification v1.0 for PBOCv2
 *
 *    Copyright:  Copyright (c) CUP 2005
 *      Company:  China Unionpay Co., Ltd
 *
 *  Platform   :  Java virtual machine
 *  Language   :  1.3.0-C
 *  Devl tool  :  Borland (c) JBuilder 4.0 *
 *  author     :  Meng Hongwen<hwmeng@chinaunionpay.com>
 *  version 1.0
 */

package cupUAPP;

import javacard.framework.*;
import javacard.security.* ;

public final class tjrandgenerator {

   private boolean  bvaild;
   private byte    size;
   private byte[]   v;
   private RandomData rd;

   //------------------------------------------------
   public tjrandgenerator()
   {
       bvaild = false;
       size = (byte)4;
       v = JCSystem.makeTransientByteArray((short)64,   JCSystem.CLEAR_ON_DESELECT);
       rd = RandomData.getInstance(RandomData.ALG_SECURE_RANDOM);
   }
   //------------------------------------------------
   public final void generateSecureRnd(byte len)
   {
      if(len>=(byte)4 || len <=(byte)64 ) size = len;
      rd.generateData(v,(short)0 ,(short)size);
      bvaild = true;
   }
   //------------------------------------------------
   public final byte getRndValue(byte[] bf)
   {
      if(bvaild) {
         Util.arrayCopyNonAtomic(v,(short)0, bf, (short)0, (short)size);
         return size;
      } else return (byte)0;
   }
   //------------------------------------------------
   public final void revokeRnd()
   {
      bvaild = false;
   }
   //------------------------------------------------
   public final boolean isvaild()
   {
      return bvaild;
   }
   //------------------------------------------------
   public final byte sizeOfRnd()
   {
      return size;
   }
   //------------------------------------------------
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?