public class PassportService
extends net.sf.scuba.smartcards.CardService
open() ==><br /> sendSelectApplet() ==><br /> doBAC(...) ==><br /> doAA() ==><br /> getInputStream(...)<sup>*</sup> ==><br /> close()
Modifier and Type | Field and Description |
---|---|
protected static byte[] |
APPLET_AID
The applet we select when we start a session.
|
static byte |
CAN_PACE_KEY_REFERENCE
Shared secret type for PACE according to BSI TR-03110 v2.03 B.11.1.
|
static int |
DEFAULT_MAX_BLOCKSIZE
The default maximal blocksize used for unencrypted APDUs.
|
static short |
EF_CARD_ACCESS
Card Access.
|
static short |
EF_CARD_SECURITY
Card Security.
|
static short |
EF_COM
The data group presence list.
|
static short |
EF_CVCA
Contains EAC CVA references.
|
static short |
EF_DG1
File identifier for data group 1.
|
static short |
EF_DG10
File identifier for data group 10.
|
static short |
EF_DG11
File identifier for data group 11.
|
static short |
EF_DG12
File identifier for data group 12.
|
static short |
EF_DG13
File identifier for data group 13.
|
static short |
EF_DG14
File identifier for data group 14.
|
static short |
EF_DG15
File identifier for data group 15.
|
static short |
EF_DG16
File identifier for data group 16.
|
static short |
EF_DG2
File identifier for data group 2.
|
static short |
EF_DG3
File identifier for data group 3.
|
static short |
EF_DG4
File identifier for data group 4.
|
static short |
EF_DG5
File identifier for data group 5.
|
static short |
EF_DG6
File identifier for data group 6.
|
static short |
EF_DG7
File identifier for data group 7.
|
static short |
EF_DG8
File identifier for data group 8.
|
static short |
EF_DG9
File identifier for data group 9.
|
static short |
EF_SOD
The security document.
|
static int |
EXTENDED_MAX_TRANCEIVE_LENGTH
The extended maximal tranceive length of APDUs.
|
static byte |
MRZ_PACE_KEY_REFERENCE
Shared secret type for PACE according to BSI TR-03110 v2.03 B.11.1.
|
static byte |
NO_PACE_KEY_REFERENCE
Shared secret type for non-PACE key.
|
static int |
NO_SFI
Invalid short identifier.
|
static int |
NORMAL_MAX_TRANCEIVE_LENGTH
The normal maximal tranceive length of APDUs.
|
static byte |
PIN_PACE_KEY_REFERENCE
Shared secret type for PACE according to BSI TR-03110 v2.03 B.11.1.
|
static byte |
PUK_PACE_KEY_REFERENCE
Shared secret type for PACE according to BSI TR-03110 v2.03 B.11.1.
|
static byte |
SFI_CARD_ACCESS
Short file identifier for card access file.
|
static byte |
SFI_CARD_SECURITY
Short file identifier for card security file.
|
static byte |
SFI_COM
Short file identifier for file.
|
static byte |
SFI_CVCA
Short file identifier for file.
|
static byte |
SFI_DG1
Short file identifier for file.
|
static byte |
SFI_DG10
Short file identifier for file.
|
static byte |
SFI_DG11
Short file identifier for file.
|
static byte |
SFI_DG12
Short file identifier for file.
|
static byte |
SFI_DG13
Short file identifier for file.
|
static byte |
SFI_DG14
Short file identifier for file.
|
static byte |
SFI_DG15
Short file identifier for file.
|
static byte |
SFI_DG16
Short file identifier for file.
|
static byte |
SFI_DG2
Short file identifier for file.
|
static byte |
SFI_DG3
Short file identifier for file.
|
static byte |
SFI_DG4
Short file identifier for file.
|
static byte |
SFI_DG5
Short file identifier for file.
|
static byte |
SFI_DG6
Short file identifier for file.
|
static byte |
SFI_DG7
Short file identifier for file.
|
static byte |
SFI_DG8
Short file identifier for file.
|
static byte |
SFI_DG9
Short file identifier for file.
|
static byte |
SFI_SOD
Short file identifier for file.
|
Constructor and Description |
---|
PassportService(net.sf.scuba.smartcards.CardService service,
int maxTranceiveLength,
int maxBlockSize,
boolean isSFIEnabled,
boolean shouldCheckMAC)
Creates a new passport service for accessing the passport.
|
Modifier and Type | Method and Description |
---|---|
void |
close()
Closes this service.
|
AAResult |
doAA(PublicKey publicKey,
String digestAlgorithm,
String signatureAlgorithm,
byte[] challenge)
Performs the Active Authentication protocol.
|
BACResult |
doBAC(BACKeySpec bacKey)
Performs the Basic Access Control protocol.
|
BACResult |
doBAC(SecretKey kEnc,
SecretKey kMac)
Performs the Basic Access Control protocol.
|
CAResult |
doCA(BigInteger keyId,
String oid,
String publicKeyOID,
PublicKey publicKey)
Perform CA (Chip Authentication) part of EAC (version 1).
|
PACEResult |
doPACE(AccessKeySpec keySpec,
String oid,
AlgorithmParameterSpec params)
Performs the PACE 2.0 / SAC protocol.
|
TAResult |
doTA(CVCPrincipal caReference,
List<CardVerifiableCertificate> terminalCertificates,
PrivateKey terminalKey,
String taAlg,
CAResult chipAuthenticationResult,
PACEResult paceResult)
Performs Terminal Authentication (TA) part of EAC (version 1).
|
TAResult |
doTA(CVCPrincipal caReference,
List<CardVerifiableCertificate> terminalCertificates,
PrivateKey terminalKey,
String taAlg,
CAResult chipAuthenticationResult,
String documentNumber)
Performs Terminal Authentication (TA) part of EAC (version 1).
|
byte[] |
getATR()
Gets the answer to reset bytes.
|
net.sf.scuba.smartcards.CardFileInputStream |
getInputStream(short fid)
Gets the file as an input stream indicated by a file identifier.
|
int |
getMaxTranceiveLength()
Returns the maximum tranceive length of (protected) APDUs.
|
net.sf.scuba.smartcards.APDUWrapper |
getWrapper()
Gets the wrapper.
|
boolean |
isOpen()
Gets whether this service is open.
|
void |
open()
Opens a session to the card.
|
byte[] |
sendGeneralAuthenticate(net.sf.scuba.smartcards.APDUWrapper wrapper,
byte[] data,
boolean isLast)
Sends a General Authenticate command.
|
byte[] |
sendGetChallenge()
Sends a
GET CHALLENGE command to the passport. |
byte[] |
sendGetChallenge(net.sf.scuba.smartcards.APDUWrapper wrapper)
Sends a
GET CHALLENGE command to the passport. |
byte[] |
sendInternalAuthenticate(net.sf.scuba.smartcards.APDUWrapper wrapper,
byte[] rndIFD)
Sends an
INTERNAL AUTHENTICATE command to the passport. |
void |
sendMSEKAT(net.sf.scuba.smartcards.APDUWrapper wrapper,
byte[] keyData,
byte[] idData)
The MSE KAT APDU, see EAC 1.11 spec, Section B.1.
|
void |
sendMSESetATExtAuth(net.sf.scuba.smartcards.APDUWrapper wrapper,
byte[] data)
The MSE Set AT APDU for TA, see EAC 1.11 spec, Section B.2.
|
void |
sendMSESetATIntAuth(net.sf.scuba.smartcards.APDUWrapper wrapper,
String oid,
BigInteger keyId)
The MSE Set AT for chip authentication.
|
void |
sendMSESetATMutualAuth(net.sf.scuba.smartcards.APDUWrapper wrapper,
String oid,
int refPublicKeyOrSecretKey,
byte[] refPrivateKeyOrForComputingSessionKey)
The MSE AT APDU for PACE, see ICAO TR-SAC-1.01, Section 3.2.1, BSI TR 03110 v2.03 B11.1.
|
void |
sendMSESetDST(net.sf.scuba.smartcards.APDUWrapper wrapper,
byte[] data)
The MSE DST APDU, see EAC 1.11 spec, Section B.2.
|
byte[] |
sendMutualAuth(byte[] rndIFD,
byte[] rndICC,
byte[] kIFD,
SecretKey kEnc,
SecretKey kMac)
Sends an
EXTERNAL AUTHENTICATE command to the passport. |
void |
sendMutualAuthenticate(net.sf.scuba.smartcards.APDUWrapper wrapper,
byte[] signature)
Sends the EXTERNAL AUTHENTICATE command.
|
void |
sendPSOChainMode(net.sf.scuba.smartcards.APDUWrapper wrapper,
byte[] certBodyData,
byte[] certSignatureData)
Sends a perform security operation command in chain mode.
|
void |
sendPSOExtendedLengthMode(net.sf.scuba.smartcards.APDUWrapper wrapper,
byte[] certBodyData,
byte[] certSignatureData)
Sends a perform security operation command in extended length mode.
|
byte[] |
sendReadBinary(net.sf.scuba.smartcards.APDUWrapper wrapper,
int sfi,
int offset,
int le,
boolean isSFIEnabled,
boolean isTLVEncodedOffsetNeeded)
Sends a
READ BINARY command to the passport. |
byte[] |
sendReadBinary(int offset,
int le,
boolean isTLVEncodedOffsetNeeded)
Sends a
READ BINARY command using a short file identifier to the passport,
using the wrapper when a secure channel has been set up. |
byte[] |
sendReadBinary(int sfi,
int offset,
int le,
boolean isTLVEncodedOffsetNeeded)
Sends a
READ BINARY command using a short file identifier to the passport,
using the wrapper when a secure channel has been set up. |
void |
sendSelectApplet(net.sf.scuba.smartcards.APDUWrapper wrapper,
byte[] aid)
Sends a
SELECT APPLET command to the card. |
void |
sendSelectApplet(boolean hasPACESucceeded)
Selects the MRTD card side applet.
|
void |
sendSelectFile(net.sf.scuba.smartcards.APDUWrapper wrapper,
short fid)
Sends a
SELECT FILE command to the passport. |
void |
sendSelectFile(short fid)
Selects a file within the MRTD application.
|
boolean |
shouldCheckMAC()
Whether secure channels should check the MAC on response APDUs sent by the ICC.
|
net.sf.scuba.smartcards.ResponseAPDU |
transmit(net.sf.scuba.smartcards.APDUWrapper wrapper,
net.sf.scuba.smartcards.CommandAPDU commandAPDU)
Transmits an APDU.
|
net.sf.scuba.smartcards.ResponseAPDU |
transmit(net.sf.scuba.smartcards.CommandAPDU commandAPDU)
Tranceives an APDU.
|
public static final short EF_CARD_ACCESS
public static final short EF_CARD_SECURITY
public static final short EF_DG1
public static final short EF_DG2
public static final short EF_DG3
public static final short EF_DG4
public static final short EF_DG5
public static final short EF_DG6
public static final short EF_DG7
public static final short EF_DG8
public static final short EF_DG9
public static final short EF_DG10
public static final short EF_DG11
public static final short EF_DG12
public static final short EF_DG13
public static final short EF_DG14
public static final short EF_DG15
public static final short EF_DG16
public static final short EF_SOD
public static final short EF_COM
public static final short EF_CVCA
public static final byte SFI_CARD_ACCESS
public static final byte SFI_CARD_SECURITY
public static final byte SFI_DG1
public static final byte SFI_DG2
public static final byte SFI_DG3
public static final byte SFI_DG4
public static final byte SFI_DG5
public static final byte SFI_DG6
public static final byte SFI_DG7
public static final byte SFI_DG8
public static final byte SFI_DG9
public static final byte SFI_DG10
public static final byte SFI_DG11
public static final byte SFI_DG12
public static final byte SFI_DG13
public static final byte SFI_DG14
public static final byte SFI_DG15
public static final byte SFI_DG16
public static final byte SFI_COM
public static final byte SFI_SOD
public static final byte SFI_CVCA
public static final int DEFAULT_MAX_BLOCKSIZE
public static final int NORMAL_MAX_TRANCEIVE_LENGTH
public static final int EXTENDED_MAX_TRANCEIVE_LENGTH
public static final byte NO_PACE_KEY_REFERENCE
public static final byte MRZ_PACE_KEY_REFERENCE
public static final byte CAN_PACE_KEY_REFERENCE
public static final byte PIN_PACE_KEY_REFERENCE
public static final byte PUK_PACE_KEY_REFERENCE
public static final int NO_SFI
protected static final byte[] APPLET_AID
public PassportService(net.sf.scuba.smartcards.CardService service, int maxTranceiveLength, int maxBlockSize, boolean isSFIEnabled, boolean shouldCheckMAC) throws net.sf.scuba.smartcards.CardServiceException
service
- another service which will deal with sending the APDUs to the cardmaxTranceiveLength
- maximum length for APDUsmaxBlockSize
- maximum buffer size for plain text APDUsisSFIEnabled
- whether short file identifiers should be used for read binaries when possibleshouldCheckMAC
- whether the secure messaging channels, resulting from BAC, PACE, EAC-CA, should
check MACs on response APDUsnet.sf.scuba.smartcards.CardServiceException
- when the available JCE providers cannot provide the necessary
cryptographic primitives:
public void open() throws net.sf.scuba.smartcards.CardServiceException
net.sf.scuba.smartcards.CardServiceException
- on errorpublic void sendSelectApplet(boolean hasPACESucceeded) throws net.sf.scuba.smartcards.CardServiceException
hasPACESucceeded
- indicates whether PACE has been executed successfully (in which case a secure messaging channel has been established)net.sf.scuba.smartcards.CardServiceException
- on errorpublic boolean isOpen()
public void sendSelectFile(short fid) throws net.sf.scuba.smartcards.CardServiceException
fid
- a file identifiernet.sf.scuba.smartcards.CardServiceException
- on errorpublic byte[] sendReadBinary(int offset, int le, boolean isTLVEncodedOffsetNeeded) throws net.sf.scuba.smartcards.CardServiceException
READ BINARY
command using a short file identifier to the passport,
using the wrapper when a secure channel has been set up.offset
- offset into the filele
- the expected length of the file to readisTLVEncodedOffsetNeeded
- whether to encode the offset in a TLV object (typically for offset larger than 32767)le
with (the specified part of) the contents of the currently selected filenet.sf.scuba.smartcards.CardServiceException
- on tranceive errorpublic byte[] sendReadBinary(int sfi, int offset, int le, boolean isTLVEncodedOffsetNeeded) throws net.sf.scuba.smartcards.CardServiceException
READ BINARY
command using a short file identifier to the passport,
using the wrapper when a secure channel has been set up.sfi
- the short file identifier byte as int value (between 0 and 255)offset
- offset into the filele
- the expected length of the file to readisTLVEncodedOffsetNeeded
- whether to encode the offset in a TLV object (typically for offset larger than 32767)le
with (the specified part of) the contents of the currently selected filenet.sf.scuba.smartcards.CardServiceException
- on tranceive errorpublic BACResult doBAC(BACKeySpec bacKey) throws net.sf.scuba.smartcards.CardServiceException
bacKey
- the key based on the document number,
the card holder's birth date,
and the document's expiration datenet.sf.scuba.smartcards.CardServiceException
- if authentication failedpublic BACResult doBAC(SecretKey kEnc, SecretKey kMac) throws net.sf.scuba.smartcards.CardServiceException, GeneralSecurityException
kEnc
- static 3DES key required for BACkMac
- static 3DES key required for BACnet.sf.scuba.smartcards.CardServiceException
- if authentication failedGeneralSecurityException
- on security primitives related problemspublic PACEResult doPACE(AccessKeySpec keySpec, String oid, AlgorithmParameterSpec params) throws PACEException
keySpec
- the MRZoid
- as specified in the PACEInfo, indicates GM or IM or CAM, DH or ECDH, cipher, digest, lengthparams
- explicit static domain parameters the domain params for DH or ECDHPACEException
- on errorpublic CAResult doCA(BigInteger keyId, String oid, String publicKeyOID, PublicKey publicKey) throws net.sf.scuba.smartcards.CardServiceException
keyId
- passport's public key id (stored in DG14), null
if noneoid
- the object identifier indicating the Chip Authentication protocolpublicKeyOID
- the object identifier indicating the public key algorithm usedpublicKey
- passport's public key (stored in DG14)net.sf.scuba.smartcards.CardServiceException
- if CA failed or some error occurredpublic TAResult doTA(CVCPrincipal caReference, List<CardVerifiableCertificate> terminalCertificates, PrivateKey terminalKey, String taAlg, CAResult chipAuthenticationResult, String documentNumber) throws net.sf.scuba.smartcards.CardServiceException
caReference
- reference issuerterminalCertificates
- terminal certificate chainterminalKey
- terminal private keytaAlg
- algorithmchipAuthenticationResult
- the chip authentication resultdocumentNumber
- the document numbernet.sf.scuba.smartcards.CardServiceException
- on errorpublic TAResult doTA(CVCPrincipal caReference, List<CardVerifiableCertificate> terminalCertificates, PrivateKey terminalKey, String taAlg, CAResult chipAuthenticationResult, PACEResult paceResult) throws net.sf.scuba.smartcards.CardServiceException
caReference
- reference issuerterminalCertificates
- terminal certificate chainterminalKey
- terminal private keytaAlg
- algorithmchipAuthenticationResult
- the chip authentication resultpaceResult
- the PACE resultnet.sf.scuba.smartcards.CardServiceException
- on errorpublic AAResult doAA(PublicKey publicKey, String digestAlgorithm, String signatureAlgorithm, byte[] challenge) throws net.sf.scuba.smartcards.CardServiceException
publicKey
- the public key to use (usually read from the card)digestAlgorithm
- the digest algorithm to use, or nullsignatureAlgorithm
- signature algorithmchallenge
- challengenet.sf.scuba.smartcards.CardServiceException
- on errorpublic void close()
public int getMaxTranceiveLength()
public net.sf.scuba.smartcards.APDUWrapper getWrapper()
null
until access control has been performed.public boolean shouldCheckMAC()
public net.sf.scuba.smartcards.CardFileInputStream getInputStream(short fid) throws net.sf.scuba.smartcards.CardServiceException
fid
- ICAO file identifiernet.sf.scuba.smartcards.CardServiceException
- if the file cannot be readpublic net.sf.scuba.smartcards.ResponseAPDU transmit(net.sf.scuba.smartcards.CommandAPDU commandAPDU) throws net.sf.scuba.smartcards.CardServiceException
0x9000
this method does
NOT throw a CardServiceException, but it returns this as error code
as result.transmit
in class net.sf.scuba.smartcards.CardService
commandAPDU
- the command APDUnet.sf.scuba.smartcards.CardServiceException
- on errorpublic byte[] getATR()
getATR
in class net.sf.scuba.smartcards.CardService
public net.sf.scuba.smartcards.ResponseAPDU transmit(net.sf.scuba.smartcards.APDUWrapper wrapper, net.sf.scuba.smartcards.CommandAPDU commandAPDU) throws net.sf.scuba.smartcards.CardServiceException
wrapper
- the secure messaging wrappercommandAPDU
- the APDU to sendnet.sf.scuba.smartcards.CardServiceException
- if tranceiving failedpublic void sendSelectApplet(net.sf.scuba.smartcards.APDUWrapper wrapper, byte[] aid) throws net.sf.scuba.smartcards.CardServiceException
SELECT APPLET
command to the card.wrapper
- the secure messaging wrapper to useaid
- the applet to selectnet.sf.scuba.smartcards.CardServiceException
- on tranceive errorpublic void sendSelectFile(net.sf.scuba.smartcards.APDUWrapper wrapper, short fid) throws net.sf.scuba.smartcards.CardServiceException
SELECT FILE
command to the passport. Secure
messaging will be applied to the command and response apdu.wrapper
- the secure messaging wrapper to usefid
- the file to selectnet.sf.scuba.smartcards.CardServiceException
- on tranceive errorpublic byte[] sendReadBinary(net.sf.scuba.smartcards.APDUWrapper wrapper, int sfi, int offset, int le, boolean isSFIEnabled, boolean isTLVEncodedOffsetNeeded) throws net.sf.scuba.smartcards.CardServiceException
READ BINARY
command to the passport.
Secure messaging will be applied to the command and response APDU.wrapper
- the secure messaging wrapper to use, or null
for nonesfi
- the short file identifier byte of the file to read as an int value (between 0 and 255)
only if isSFIEnabled
is true
, if not any value)offset
- offset into the file
(either a value between 0 and 255 if isSFIEnabled
is true
,
of a value between 0 and 65535 if not)le
- the expected length of the file to readisSFIEnabled
- a boolean indicating whether short file identifiers are usedisTLVEncodedOffsetNeeded
- a boolean indicating whether it should be a long (INS == 0xB1
) readle
with (the specified part of) the contents of the currently selected filenet.sf.scuba.smartcards.CardServiceException
- if the command was not successfulpublic byte[] sendGetChallenge() throws net.sf.scuba.smartcards.CardServiceException
GET CHALLENGE
command to the passport.net.sf.scuba.smartcards.CardServiceException
- on tranceive errorpublic byte[] sendGetChallenge(net.sf.scuba.smartcards.APDUWrapper wrapper) throws net.sf.scuba.smartcards.CardServiceException
GET CHALLENGE
command to the passport.wrapper
- secure messaging wrappernet.sf.scuba.smartcards.CardServiceException
- on tranceive errorpublic byte[] sendInternalAuthenticate(net.sf.scuba.smartcards.APDUWrapper wrapper, byte[] rndIFD) throws net.sf.scuba.smartcards.CardServiceException
INTERNAL AUTHENTICATE
command to the passport.
This is part of AA.wrapper
- secure messaging wrapperrndIFD
- the challenge to sendnet.sf.scuba.smartcards.CardServiceException
- on tranceive errorpublic byte[] sendMutualAuth(byte[] rndIFD, byte[] rndICC, byte[] kIFD, SecretKey kEnc, SecretKey kMac) throws net.sf.scuba.smartcards.CardServiceException
EXTERNAL AUTHENTICATE
command to the passport.
This is part of BAC.
The resulting byte array has length 32 and contains rndICC
(first 8 bytes), rndIFD
(next 8 bytes), their key material
kICC
(last 16 bytes).rndIFD
- our challengerndICC
- their challengekIFD
- our key materialkEnc
- the static encryption keykMac
- the static mac keykEnc
) and verified
(using kMac
)net.sf.scuba.smartcards.CardServiceException
- on tranceive errorpublic void sendMutualAuthenticate(net.sf.scuba.smartcards.APDUWrapper wrapper, byte[] signature) throws net.sf.scuba.smartcards.CardServiceException
wrapper
- secure messaging wrappersignature
- terminal signaturenet.sf.scuba.smartcards.CardServiceException
- if the resulting status word different from 9000public void sendMSEKAT(net.sf.scuba.smartcards.APDUWrapper wrapper, byte[] keyData, byte[] idData) throws net.sf.scuba.smartcards.CardServiceException
wrapper
- secure messaging wrapperkeyData
- key data object (tag 0x91)idData
- key id data object (tag 0x84), can be nullnet.sf.scuba.smartcards.CardServiceException
- on errorpublic void sendMSESetDST(net.sf.scuba.smartcards.APDUWrapper wrapper, byte[] data) throws net.sf.scuba.smartcards.CardServiceException
wrapper
- secure messaging wrapperdata
- public key reference data object (tag 0x83)net.sf.scuba.smartcards.CardServiceException
- on errorpublic void sendMSESetATExtAuth(net.sf.scuba.smartcards.APDUWrapper wrapper, byte[] data) throws net.sf.scuba.smartcards.CardServiceException
wrapper
- secure messaging wrapperdata
- public key reference data object (should already be prefixed with tag 0x83)net.sf.scuba.smartcards.CardServiceException
- on errorpublic void sendMSESetATIntAuth(net.sf.scuba.smartcards.APDUWrapper wrapper, String oid, BigInteger keyId) throws net.sf.scuba.smartcards.CardServiceException
wrapper
- secure messaging wrapperoid
- the OIDkeyId
- the keyId or null
net.sf.scuba.smartcards.CardServiceException
- on errorpublic void sendMSESetATMutualAuth(net.sf.scuba.smartcards.APDUWrapper wrapper, String oid, int refPublicKeyOrSecretKey, byte[] refPrivateKeyOrForComputingSessionKey) throws net.sf.scuba.smartcards.CardServiceException
wrapper
- secure messaging wrapperoid
- OID of the protocol to select (this method will prefix 0x80
)refPublicKeyOrSecretKey
- value specifying whether to use MRZ (0x01
) or CAN (0x02
) (this method will prefix 0x83
)refPrivateKeyOrForComputingSessionKey
- indicates a private key or reference for computing a session key (this method will prefix 0x84
)net.sf.scuba.smartcards.CardServiceException
- on errorpublic byte[] sendGeneralAuthenticate(net.sf.scuba.smartcards.APDUWrapper wrapper, byte[] data, boolean isLast) throws net.sf.scuba.smartcards.CardServiceException
wrapper
- secure messaging wrapperdata
- data to be sent, without the 0x7C
prefix (this method will add it)isLast
- indicates whether this is the last command in the chain0x7C
prefix (this method will remove it)net.sf.scuba.smartcards.CardServiceException
- on errorpublic void sendPSOExtendedLengthMode(net.sf.scuba.smartcards.APDUWrapper wrapper, byte[] certBodyData, byte[] certSignatureData) throws net.sf.scuba.smartcards.CardServiceException
wrapper
- secure messaging wrappercertBodyData
- the certificate bodycertSignatureData
- signature datanet.sf.scuba.smartcards.CardServiceException
- on error communicating over the servicepublic void sendPSOChainMode(net.sf.scuba.smartcards.APDUWrapper wrapper, byte[] certBodyData, byte[] certSignatureData) throws net.sf.scuba.smartcards.CardServiceException
wrapper
- secure messaging wrappercertBodyData
- the certificate bodycertSignatureData
- signature datanet.sf.scuba.smartcards.CardServiceException
- on error communicating over the serviceCopyright © 2018. All rights reserved.