namespace smartcard_service_api
{
-// PKCS15DODF::PKCS15DODF():PKCS15Object()
-// {
-//
-// }
-
- PKCS15DODF::PKCS15DODF(unsigned int fid, Channel *channel):PKCS15Object(channel)
+ PKCS15DODF::PKCS15DODF(unsigned int fid, Channel *channel) :
+ PKCS15Object(channel)
{
int ret = 0;
- if ((ret = select(fid)) == 0)
- {
+ if ((ret = select(fid)) >= SCARD_ERROR_OK) {
ByteArray dodfData, extra;
- _DBG("response : %s", selectResponse.toString());
+ _DBG("response : %s", selectResponse.toString().c_str());
- if ((ret = readBinary(0, 0, getFCP()->getFileSize(), dodfData)) == 0)
- {
- _DBG("odfData : %s", dodfData.toString());
+ if ((ret = readBinaryAll(0, dodfData)) == 0) {
+ _DBG("dodfData : %s", dodfData.toString().c_str());
parseData(dodfData);
- }
- else
- {
+ } else {
_ERR("readBinary failed, [%d]", ret);
}
- }
- else
- {
+ } else {
_ERR("select failed, [%d]", ret);
}
}
- PKCS15DODF::PKCS15DODF(ByteArray path, Channel *channel):PKCS15Object(channel)
+ PKCS15DODF::PKCS15DODF(const ByteArray &path, Channel *channel) :
+ PKCS15Object(channel)
{
int ret = 0;
- if ((ret = select(path)) == 0)
- {
+ if ((ret = select(path)) >= SCARD_ERROR_OK) {
ByteArray dodfData, extra;
- _DBG("response : %s", selectResponse.toString());
+ _DBG("response : %s", selectResponse.toString().c_str());
- if ((ret = readBinary(0, 0, getFCP()->getFileSize(), dodfData)) == 0)
- {
- _DBG("dodfData : %s", dodfData.toString());
+ if ((ret = readBinaryAll(0, dodfData)) == 0) {
+ _DBG("dodfData : %s", dodfData.toString().c_str());
parseData(dodfData);
- }
- else
- {
+ } else {
_ERR("readBinary failed, [%d]", ret);
}
- }
- else
- {
+ } else {
_ERR("select failed, [%d]", ret);
}
}
{
}
- bool PKCS15DODF::parseData(ByteArray data)
+ bool PKCS15DODF::parseData(const ByteArray &data)
{
bool result = false;
SimpleTLV tlv(data);
- while (tlv.decodeTLV())
- {
- switch (tlv.getTag())
- {
+ while (tlv.decodeTLV()) {
+ switch (tlv.getTag()) {
case (unsigned int)0xA1 : /* CHOICE 1 : OidDO */
{
PKCS15OID oid(tlv.getValue());
- _DBG("OID DataObject");
+ _DBG("OID DataObject : %s", oid.getOID().toString().c_str());
- pair<ByteArray, PKCS15OID> newPair(oid.getOID(), oid);
- mapOID.insert(newPair);
+ mapOID.insert(make_pair(oid.getOID(), oid));
}
break;
default :
- _DBG("Unknown tlv : t [%X], l [%d], v %s", tlv.getTag(), tlv.getLength(), tlv.getValue().toString());
+ _DBG("Unknown tlv : t [%X], l [%d], v %s", tlv.getTag(), tlv.size(), tlv.getValue().toString().c_str());
break;
}
}
- _DBG("dataList.size() = %d", mapOID.size());
+ _INFO("dataList.size() = %d", mapOID.size());
return result;
}
- int PKCS15DODF::searchOID(ByteArray oid, ByteArray &data)
+ int PKCS15DODF::searchOID(const ByteArray &oid, ByteArray &data) const
{
int result = -1;
- map<ByteArray, PKCS15OID>::iterator item;
+ map<ByteArray, PKCS15OID>::const_iterator item;
item = mapOID.find(oid);
- if (item != mapOID.end())
- {
+ if (item != mapOID.end()) {
data = item->second.getPath();
result = 0;
}