001: /*************************************************************************
002: * *
003: * EJBCA: The OpenSource Certificate Authority *
004: * *
005: * This software is free software; you can redistribute it and/or *
006: * modify it under the terms of the GNU Lesser General Public *
007: * License as published by the Free Software Foundation; either *
008: * version 2.1 of the License, or any later version. *
009: * *
010: * See terms of license at gnu.org. *
011: * *
012: *************************************************************************/package org.ejbca.core.model.hardtoken.types;
013:
014: import org.ejbca.core.model.SecConst;
015:
016: /**
017: * EnhancedEIDHardToken is a class defining data stored in database for a Enhanced EID token.
018: *
019: * @version $Id: EnhancedEIDHardToken.java,v 1.3 2007/04/13 06:15:20 herrvendil Exp $
020: */
021: public class EnhancedEIDHardToken extends HardToken {
022: // Public Constants
023: public static final int THIS_TOKENTYPE = SecConst.TOKEN_ENHANCEDEID;
024: public static final String INITIALSIGNATUREPIN = "INITIALSIGNATUREPIN";
025: public static final String SIGNATUREPUK = "SIGNATUREPUK";
026: public static final String INITIALAUTHPIN = "INITIALAUTHPIN";
027: public static final String AUTHPUK = "AUTHPUK";
028: public static final String ENCKEYRECOVERABLE = "ENCKEYRECOVERABLE";
029:
030: public static final String[] FIELDSWITHPUK = new String[] {
031: INITIALSIGNATUREPIN, SIGNATUREPUK, EMPTYROW_FIELD,
032: INITIALAUTHPIN, AUTHPUK, EMPTYROW_FIELD, ENCKEYRECOVERABLE };
033: public static final int[] DATATYPESWITHPUK = new int[] { STRING,
034: STRING, EMPTYROW, STRING, STRING, EMPTYROW, BOOLEAN };
035: public static final String[] FIELDTEXTSWITHPUK = new String[] {
036: "INITIALSIGNATUREPIN", "SIGNATUREPUK", EMPTYROW_FIELD,
037: "INITIALAUTHENCPIN", "AUTHENCPUK", EMPTYROW_FIELD,
038: ENCKEYRECOVERABLE };
039:
040: public static final String[] FIELDSWITHOUTPUK = new String[] { ENCKEYRECOVERABLE };
041: public static final int[] DATATYPESWITHOUTPUK = new int[] { BOOLEAN };
042: public static final String[] FIELDTEXTSWITHOUTPUK = new String[] { ENCKEYRECOVERABLE };
043:
044: // Public Methods
045: /** Constructor to use. */
046: public EnhancedEIDHardToken(String initialsignaturepin,
047: String signaturepuk, String initialauthencpin,
048: String authencpuk, boolean enckeyrecoverable,
049: int hardtokenprofileid) {
050: super (true);
051: setInitialSignaturePIN(initialsignaturepin);
052: setSignaturePUK(signaturepuk);
053: setInitialAuthPIN(initialauthencpin);
054: setAuthPUK(authencpuk);
055: setEncKeyRecoverable(enckeyrecoverable);
056: setTokenProfileId(hardtokenprofileid);
057:
058: data.put(TOKENTYPE, new Integer(THIS_TOKENTYPE));
059: }
060:
061: /** Constructor only to be used internally. */
062: public EnhancedEIDHardToken(boolean includePUK) {
063: super (includePUK);
064: data.put(TOKENTYPE, new Integer(THIS_TOKENTYPE));
065: if (!includePUK) {
066: setInitialAuthPIN("");
067: setAuthPUK("");
068: setInitialSignaturePIN("");
069: setSignaturePUK("");
070: }
071: }
072:
073: // Public Methods.
074:
075: public String getInitialSignaturePIN() {
076: return (String) data.get(INITIALSIGNATUREPIN);
077: }
078:
079: public void setInitialSignaturePIN(String initialsignaturepin) {
080: data.put(INITIALSIGNATUREPIN, initialsignaturepin);
081: }
082:
083: public String getSignaturePUK() {
084: return (String) data.get(SIGNATUREPUK);
085: }
086:
087: public void setSignaturePUK(String signaturepuk) {
088: data.put(SIGNATUREPUK, signaturepuk);
089: }
090:
091: public String getInitialAuthPIN() {
092: return (String) data.get(INITIALAUTHPIN);
093: }
094:
095: public void setInitialAuthPIN(String initialauthpin) {
096: data.put(INITIALAUTHPIN, initialauthpin);
097: }
098:
099: public String getAuthPUK() {
100: return (String) data.get(AUTHPUK);
101: }
102:
103: public void setAuthPUK(String authpuk) {
104: data.put(AUTHPUK, authpuk);
105: }
106:
107: public boolean getEncKeyRecoverable() {
108: return ((Boolean) data.get(ENCKEYRECOVERABLE)).booleanValue();
109: }
110:
111: public void setEncKeyRecoverable(boolean enckeyrecoverable) {
112: data.put(ENCKEYRECOVERABLE, new Boolean(enckeyrecoverable));
113: }
114:
115: public int[] getDataTypes(boolean includePUK) {
116: if (includePUK) {
117: return DATATYPESWITHPUK;
118: }
119: return DATATYPESWITHOUTPUK;
120: }
121:
122: public String[] getFieldTexts(boolean includePUK) {
123: if (includePUK) {
124: return FIELDTEXTSWITHPUK;
125: }
126: return FIELDTEXTSWITHOUTPUK;
127: }
128:
129: public String[] getFields(boolean includePUK) {
130: if (includePUK) {
131: return FIELDSWITHPUK;
132: }
133: return FIELDSWITHOUTPUK;
134: }
135:
136: // Private fields.
137: }
|