1@startuml 2 3 4 5 6 7/' Objects '/ 8 9namespace eIDMW { 10 class CAutoLock { 11 +CAutoLock(CCard* poCard) 12 +CAutoLock(CPCSC* poPCSC, SCARDHANDLE hCard) 13 +~CAutoLock() 14 -m_poCard : CCard* 15 -m_poPCSC : CPCSC* 16 -m_hCard : SCARDHANDLE 17 } 18} 19 20 21namespace eIDMW { 22 class CBeidP15Correction { 23 +CheckCerts(std::vector< tCert>& certVector) : void 24 +CheckPINs(std::vector< tPin>& pinVector) : void 25 +CheckPrKeys(std::vector< tPrivKey>& keyVector) : void 26 } 27} 28 29 30namespace eIDMW { 31 class CCard { 32 -CCard(const CCard& oCard) 33 +CCard(SCARDHANDLE hCard, CContext* poContext, CPinpad* poPinpad, tSelectAppletMode selectAppletMode, tCardType cardType) 34 +~CCard(void) 35 #p15correction : CBeidP15Correction 36 +GetATR() : CByteArray 37 +GetIFDVersion() : CByteArray 38 +GetInfo() : CByteArray 39 +GetSerialNrBytes() : CByteArray 40 #MakePinBuf(const tPin& Pin, const std::string& csPin, bool bEmptyPin) : CByteArray 41 #MakePinCmd(tPinOperation operation, const tPin& Pin) : CByteArray 42 #ReadBinary(unsigned long ulOffset, unsigned long ulLen) : CByteArray 43 +ReadFile(const std::string& csPath, unsigned long ulOffset, unsigned long ulMaxLen, bool bDoNotCache) : CByteArray 44 +ReadUncachedFile(const std::string& csPath, unsigned long ulOffset, unsigned long ulMaxLen) : CByteArray 45 #SelectByPath(const std::string& csPath, bool bReturnFileInfo) : CByteArray 46 -SelectByPath_2(const std::string& csPath, bool bReturnFileInfo) : CByteArray 47 +SendAPDU(unsigned char ucINS, unsigned char ucP1, unsigned char ucP2, unsigned long ulOutLen) : CByteArray 48 +SendAPDU(unsigned char ucINS, unsigned char ucP1, unsigned char ucP2, const CByteArray& oData) : CByteArray 49 +SendAPDU(const CByteArray& oCmdAPDU) : CByteArray 50 +Sign(const tPrivKey& key, const tPin& Pin, unsigned long algo, const CByteArray& oData) : CByteArray 51 #SignInternal(const tPrivKey& key, unsigned long algo, const CByteArray& oData, const tPin* pPin) : CByteArray 52 #UpdateBinary(unsigned long ulOffset, const CByteArray& oData) : CByteArray 53 #VerifyAndSign(const tPrivKey& key, const tPin& Pin, unsigned long algo, const CByteArray& oData) : CByteArray 54 #m_oCardData : CByteArray 55 #m_oSerialNr : CByteArray 56 -operator=(const CCard& oCard) : CCard& 57 +{static} Connect(const std::string& csReader, CContext* poContext, CPinpad* poPinpad) : CCard* 58 #m_poContext : CContext* 59 +GetP15Correction() : CP15Correction* 60 #m_poPinpad : CPinpad* 61 #PinOperation2Dlg(tPinOperation operation) : DlgPinOperation 62 +PinUsage2Dlg(const tPin& Pin, const tPrivKey* pKey) : DlgPinUsage 63 +m_hCard : SCARDHANDLE 64 #AskPinRetry(tPinOperation operation, const tPin& Pin, unsigned long ulRemaining, const tPrivKey* pKey) : bool 65 #IsDigit(char c) : bool 66 +IsPinpadReader() : bool 67 +LogOff(const tPin& Pin) : bool 68 +PinCmd(tPinOperation operation, const tPin& Pin, const std::string& csPin1, const std::string& csPin2, unsigned long& ulRemaining, const tPrivKey* pKey) : bool 69 -PinCmd_2(tPinOperation operation, const tPin& Pin, const std::string& csPin1, const std::string& csPin2, unsigned long& ulRemaining, const tPrivKey* pKey) : bool 70 #SelectApplet() : bool 71 #SerialNrPresent(const CByteArray& oData) : bool 72 #ShouldSelectApplet(unsigned char ins, unsigned long ulSW12) : bool 73 +Status() : bool 74 #m_bSerialNrString : bool 75 #getDF(const std::string& csPath, unsigned long& ulOffset) : int 76 +GetLabel() : std::string 77 +GetPinpadPrefix() : std::string 78 +GetSerialNr() : std::string 79 #m_csSerialNr : std::string 80 #>m_verifiedPINs : std::vector< unsigned long 81 +GetCacheInfo(const std::string& csPath) : tCacheInfo 82 +GetType() : tCardType 83 #m_cardType : tCardType 84 #ParseFileInfo(CByteArray& oFCI) : tFileInfo 85 #SelectFile(const std::string& csPath, bool bReturnFileInfo) : tFileInfo 86 -SelectFile_2(const std::string& csPath, bool bReturnFileInfo) : tFileInfo 87 #m_selectAppletMode : tSelectAppletMode 88 +GetAppletVersion() : unsigned char 89 #Hex2Byte(char cHex) : unsigned char 90 #Hex2Byte(const std::string& csHex, unsigned long ulIdx) : unsigned char 91 #PinUsage2Pinpad(const tPin& Pin, const tPrivKey* pKey) : unsigned char 92 #m_ucAppletVersion : unsigned char 93 #m_ucCLA : unsigned char 94 +GetPrivKeySize() : unsigned int 95 #Get6CDelay() : unsigned long 96 +GetSupportedAlgorithms() : unsigned long 97 +PinStatus(const tPin& Pin) : unsigned long 98 #getSW12(const CByteArray& oRespAPDU, unsigned long ulExpected) : unsigned long 99 #m_ul6CDelay : unsigned long 100 #m_ulLockCount : unsigned long 101 #m_ulRemaining : unsigned long 102 #AskPin(tPinOperation operation, const tPin& Pin, std::string& csPin1, std::string& csPin2, const tPrivKey* pKey) : void 103 +Disconnect(tDisconnectMode disconnectMode) : void 104 +Lock() : void 105 +SelectApplication(const CByteArray& oAID) : void 106 #SetSecurityEnv(const tPrivKey& key, unsigned long algo, unsigned long ulInputLen) : void 107 +Unlock() : void 108 #showPinDialog(tPinOperation operation, const tPin& Pin, std::string& csPin1, std::string& csPin2, const tPrivKey* pKey) : void 109 } 110} 111 112 113namespace eIDMW { 114 class CCardLayer { 115 -CCardLayer(const CCardLayer& oCardLayer) 116 +CCardLayer(void) 117 +~CCardLayer(void) 118 -operator=(const CCardLayer& oCardLayer) : CCardLayer& 119 -m_oContext : CContext 120 +getReader(const std::string& csReaderName) : CReader& 121 -m_tpReaders : CReader* 122 +ListReaders() : CReadersInfo 123 +GetStatusChange(unsigned long ulTimeout, SCARD_READERSTATEA* txReaderStates, unsigned long ulReaderCount) : long 124 +PCSCServiceRunning(bool* pRunning) : long 125 -m_szDefaultReaderName : std::string 126 -GetDefaultReader() : std::string* 127 -m_ulReaderCount : unsigned long 128 +CancelActions() : void 129 +ForceRelease() : void 130 +PCSCReEstablishContext() : void 131 } 132} 133 134 135namespace eIDMW { 136 class CCardReaderInfo { 137 -CCardReaderInfo(void) 138 +{static} GetCardReaderInfo(void) : CCardReaderInfo* 139 +GetNoOfReaders(void) : int 140 -m_NoOfReaders : int 141 -{static} m_CardReaderInfo : static CCardReaderInfo* 142 +CollectInfo(void) : void 143 } 144} 145 146 147namespace eIDMW { 148 class CContext { 149 +CContext() 150 +~CContext() 151 +m_oPCSC : CPCSC 152 +m_bSSO : bool 153 +m_ulConnectionDelay : unsigned long 154 } 155} 156 157 158namespace eIDMW { 159 abstract class CP15Correction { 160 +CheckCerts(std::vector< tCert>& certVector) : void 161 +{abstract} CheckPINs(std::vector< tPin>& pinVector) : void 162 +{abstract} CheckPrKeys(std::vector< tPrivKey>& keyVector) : void 163 +{abstract} CP15Correction() : ~ 164 } 165} 166 167 168namespace eIDMW { 169 class CPCSC { 170 +CPCSC(void) 171 +~CPCSC(void) 172 +Control(SCARDHANDLE hCard, unsigned long ulControl, const CByteArray& oCmd, unsigned long ulMaxResponseSize) : CByteArray 173 +GetATR(SCARDHANDLE hCard) : CByteArray 174 +GetIFDVersion(SCARDHANDLE hCard) : CByteArray 175 +ListReaders() : CByteArray 176 +Transmit(SCARDHANDLE hCard, const CByteArray& oCmdAPDU, long* plRetVal, void* pSendPci, void* pRecvPci) : CByteArray 177 +GetContext() : SCARDCONTEXT 178 -m_hContext : SCARDCONTEXT 179 +Connect(const std::string& csReader, unsigned long ulShareMode, unsigned long ulPreferredProtocols) : SCARDHANDLE 180 +GetStatusChange(unsigned long ulTimeout, tReaderInfo* pReaderInfos, unsigned long ulReaderCount) : bool 181 +Status(const std::string& csReader) : bool 182 +Status(SCARDHANDLE hCard) : bool 183 -m_iListReadersCount : int 184 -m_iTimeoutCount : int 185 +GetTheStatusChange(unsigned long ulTimeout, SCARD_READERSTATEA* txReaderStates, unsigned long ulReaderCount) : long 186 -PcscToErr(unsigned long lRet) : long 187 +SW12ToErr(unsigned long ulSW12) : long 188 -m_ulCardTxDelay : unsigned long 189 +BeginTransaction(SCARDHANDLE hCard) : void 190 +Cancel() : void 191 +Disconnect(SCARDHANDLE hCard, tDisconnectMode disconnectMode) : void 192 +EndTransaction(SCARDHANDLE hCard) : void 193 +EstablishContext() : void 194 +Recover(SCARDHANDLE hCard, unsigned long* pulLockCount) : void 195 +ReleaseContext() : void 196 } 197} 198 199 200namespace eIDMW { 201 class CPKCS15 { 202 +CPKCS15(void) 203 +~CPKCS15(void) 204 -m_poCard : CCard* 205 -m_poParser : PKCS15Parser* 206 +GetCardLabel() : std::string 207 +GetSerialNr() : std::string 208 -m_csLabel : std::string 209 -m_csSerial : std::string 210 -m_oCertificates : std::vector< tCert> 211 -m_oPins : std::vector< tPin> 212 -m_oPrKeys : std::vector< tPrivKey> 213 +GetCert(unsigned long ulIndex) : tCert 214 +GetCertByID(unsigned long ulID) : tCert 215 -m_tDir : tDirInfo 216 -m_xAODF : tPKCSFile 217 -m_xCDF : tPKCSFile 218 -m_xCert : tPKCSFile 219 -m_xDir : tPKCSFile 220 -m_xODF : tPKCSFile 221 -m_xPin : tPKCSFile 222 -m_xPrKDF : tPKCSFile 223 -m_xPrKey : tPKCSFile 224 -m_xPuKDF : tPKCSFile 225 -m_xTokenInfo : tPKCSFile 226 +GetPin(unsigned long ulIndex) : tPin 227 +GetPinByID(unsigned long ulID) : tPin 228 +GetPinByRef(unsigned long ulPinRef) : tPin 229 +GetPrivKey(unsigned long ulIndex) : tPrivKey 230 +GetPrivKeyByID(unsigned long ulID) : tPrivKey 231 +CertCount() : unsigned long 232 +PinCount() : unsigned long 233 +PrivKeyCount() : unsigned long 234 +Clear(CCard* poCard) : void 235 -ReadFile(tPKCSFile* pFile, int upperLevel) : void 236 -ReadLevel1() : void 237 -ReadLevel2(tPKCSFileName name) : void 238 -ReadLevel3(tPKCSFileName name) : void 239 +SetCard(CCard* poCard) : void 240 } 241} 242 243 244namespace eIDMW { 245 class CPinpad { 246 +CPinpad(void) 247 +PinCmd(tPinOperation operation, const tPin& pin, unsigned char ucPinType, const CByteArray& oAPDU, unsigned long& ulRemaining) : CByteArray 248 #PinCmd1(tPinOperation operation, const tPin& pin, unsigned char ucPinType, const CByteArray& oAPDU, unsigned long& ulRemaining) : CByteArray 249 #PinCmd2(tPinOperation operation, const tPin& pin, unsigned char ucPinType, const CByteArray& oAPDU, unsigned long& ulRemaining) : CByteArray 250 #PinpadControl(unsigned long ulControl, const CByteArray& oCmd, tPinOperation operation, unsigned char ucPintype, const std::string& csPinLabel, bool bShowDlg) : CByteArray 251 #PinpadPPDU(BYTE cbControl, const CByteArray& oCmd, tPinOperation operation, unsigned char ucPintype, const std::string& csPinLabel, bool bShowDlg) : CByteArray 252 #m_poContext : CContext* 253 #m_oPinpadLib : CPinpadLib 254 #m_hCard : SCARDHANDLE 255 +UsePinpad(tPinOperation operation) : bool 256 #m_bCanChangeUnlock : bool 257 #m_bCanUsePPDU : bool 258 #m_bCanVerifyUnlock : bool 259 #m_bNewCard : bool 260 #m_bUsePinpadLib : bool 261 #m_csPinpadPrefix : std::string 262 #m_csReader : std::string 263 #GetMaxPinLen(const tPin& pin) : unsigned char 264 #PinOperation2Lib(tPinOperation operation) : unsigned char 265 #ToFormatString(const tPin& pin) : unsigned char 266 #ToPinBlockString(const tPin& pin) : unsigned char 267 #ToPinLengthFormat(const tPin& pin) : unsigned char 268 #GetLanguage() : unsigned long 269 #m_ioctlChangeDirect : unsigned long 270 #m_ioctlChangeFinish : unsigned long 271 #m_ioctlChangeStart : unsigned long 272 #m_ioctlVerifyDirect : unsigned long 273 #m_ioctlVerifyFinish : unsigned long 274 #m_ioctlVerifyStart : unsigned long 275 #m_ulLangCode : unsigned long 276 #m_usReaderFirmVers : unsigned short 277 #GetFeatureList() : void 278 #GetPPDUFeatureList() : void 279 +Init(CContext* poContext, SCARDHANDLE hCard, const std::string& csReader, const std::string& csPinpadPrefix) : void 280 +Init(CContext* poContext, SCARDHANDLE hCard, const std::string& csReader, const std::string& csPinpadPrefix, CByteArray usReaderFirmVers) : void 281 #UnloadPinpadLib() : void 282 } 283} 284 285 286namespace eIDMW { 287 class CReader { 288 -CReader(const std::string& csReader, CContext* poContext) 289 -CReader(const CReader& oReader) 290 +~CReader(void) 291 +GetATR() : CByteArray 292 +GetInfo() : CByteArray 293 +ReadFile(const std::string& csPath, unsigned long ulOffset, unsigned long ulMaxLen, bool bDoNotCache) : CByteArray 294 +SendAPDU(const CByteArray& oCmdAPDU) : CByteArray 295 +Sign(const tPrivKey& key, unsigned long algo, const CByteArray& oData) : CByteArray 296 -m_poCard : CCard* 297 -m_poContext : CContext* 298 -m_oPKCS15 : CPKCS15 299 -m_oPinpad : CPinpad 300 -operator=(const CReader& oReader) : CReader& 301 +GetPinUsage(const tPin& pin) : PinUsage 302 +{static} CardPresent(unsigned long ulState) : bool 303 +Connect() : bool 304 +IsPinpadReader() : bool 305 +PinCmd(tPinOperation operation, const tPin& Pin, const std::string& csPin1, const std::string& csPin2, unsigned long& ulRemaining) : bool 306 -m_bIgnoreRemoval : bool 307 +GetCardLabel() : std::string 308 +GetSerialNr() : std::string 309 -m_csReader : std::string 310 +GetReaderName() : std::string& 311 -m_wsReader : std::wstring 312 +Status(bool bReconnect) : tCardStatus 313 +GetCardType() : tCardType 314 +GetCert(unsigned long ulIndex) : tCert 315 +GetCertByID(unsigned long ulID) : tCert 316 +GetPin(unsigned long ulIndex) : tPin 317 +GetPinByID(unsigned long ulID) : tPin 318 +GetPrivKey(unsigned long ulIndex) : tPrivKey 319 +GetPrivKeyByID(unsigned long ulID) : tPrivKey 320 +GetAppletVersion() : unsigned char 321 +GetPrivKeySize() : unsigned int 322 +CertCount() : unsigned long 323 +GetSupportedAlgorithms() : unsigned long 324 +PinCount() : unsigned long 325 +PinStatus(const tPin& Pin) : unsigned long 326 +PrivKeyCount() : unsigned long 327 +Disconnect(tDisconnectMode disconnectMode) : void 328 +Lock() : void 329 +SelectApplication(const CByteArray& oAID) : void 330 +Unlock() : void 331 } 332} 333 334 335namespace eIDMW { 336 class CReadersInfo { 337 -CReadersInfo(const CByteArray& oReaders) 338 +CReadersInfo() 339 +CardPresent(unsigned long ulIndex) : bool 340 +GetReaderStates(SCARD_READERSTATEA* txReaderStates, unsigned long length, unsigned long* ulnReaders) : bool 341 +IsFirstTime(void) : bool 342 +ReaderStateChanged(unsigned long ulIndex) : bool 343 +SameList(CReadersInfo* newReadersInfo) : bool 344 +UpdateReaderStates(SCARD_READERSTATEA* txReaderStates, unsigned long ulnReaders) : bool 345 -bFirstTime : bool 346 +ReaderName(unsigned long ulIndex) : std::string 347 -m_tInfos : tReaderInfo 348 +ReaderCount() : unsigned long 349 -m_ulReaderCount : unsigned long 350 +FreeReaderStates(SCARD_READERSTATEA* txReaderStates, unsigned long ulnReaders) : void 351 +SetFirstTime(bool firstTime) : void 352 } 353} 354 355 356class EIDMW_PP_CHANGE_CCID { 357 +abData : unsigned char 358 +bConfirmPIN : unsigned char 359 +bEntryValidationCondition : unsigned char 360 +bInsertionOffsetNew : unsigned char 361 +bInsertionOffsetOld : unsigned char 362 +bMsgIndex1 : unsigned char 363 +bMsgIndex2 : unsigned char 364 +bMsgIndex3 : unsigned char 365 +bNumberMessage : unsigned char 366 +bTeoPrologue : unsigned char 367 +bTimerOut : unsigned char 368 +bTimerOut2 : unsigned char 369 +bmFormatString : unsigned char 370 +bmPINBlockString : unsigned char 371 +bmPINLengthFormat : unsigned char 372 +ulDataLength : unsigned char 373 +wLangId : unsigned char 374 +wPINMaxExtraDigit : unsigned char 375} 376 377 378class EIDMW_PP_VERIFY_CCID { 379 +abData : unsigned char 380 +bEntryValidationCondition : unsigned char 381 +bMsgIndex : unsigned char 382 +bNumberMessage : unsigned char 383 +bTeoPrologue : unsigned char 384 +bTimerOut : unsigned char 385 +bTimerOut2 : unsigned char 386 +bmFormatString : unsigned char 387 +bmPINBlockString : unsigned char 388 +bmPINLengthFormat : unsigned char 389 +ulDataLength : unsigned char 390 +wLangId : unsigned char 391 +wPINMaxExtraDigit : unsigned char 392} 393 394 395namespace eIDMW { 396 class PKCS15Parser { 397 +ParseCdf(const CByteArray& contents) : std::vector<tCert> 398 +ParseAodf(const CByteArray& contents) : std::vector<tPin> 399 +ParsePrkdf(const CByteArray& contents) : std::vector<tPrivKey> 400 +ParseDir(const CByteArray& contents) : tDirInfo 401 +ParseOdf(const CByteArray& contents) : tOdfInfo 402 +ParseTokenInfo(const CByteArray& contents) : tTokenInfo 403 -FillCOACert(tCert* cert, tCommonObjAttr* coa) : void 404 -FillCOAPin(tPin* pin, tCommonObjAttr* coa) : void 405 -FillCOAPrKey(tPrivKey* key, tCommonObjAttr* coa) : void 406 } 407} 408 409 410namespace eIDMW { 411 class tAlgoInfo <<(S,cyan)>> { 412 +iAlgRef : int 413 +iRef : int 414 } 415} 416 417 418namespace eIDMW { 419 class tCacheInfo <<(S,cyan)>> { 420 +action : tCacheAction 421 +ulOffset : unsigned long 422 } 423} 424 425 426namespace eIDMW { 427 class tCert <<(S,cyan)>> { 428 +bAuthority : bool 429 +bImplicitTrust : bool 430 +bValid : bool 431 +csLabel : std::string 432 +csPath : std::string 433 +ulAuthID : unsigned long 434 +ulFlags : unsigned long 435 +ulID : unsigned long 436 +ulUserConsent : unsigned long 437 } 438} 439 440 441namespace eIDMW { 442 class tCommonObjAttr <<(S,cyan)>> { 443 +lastPosition : int 444 +csLabel : std::string 445 +ulAuthID : unsigned long 446 +ulFlags : unsigned long 447 +ulUserConsent : unsigned long 448 +Reset() : void 449 } 450} 451 452 453namespace eIDMW { 454 class tDirInfo <<(S,cyan)>> { 455 +csAppPath : std::string 456 +csLabel : std::string 457 +oAppID : std::string 458 } 459} 460 461 462namespace eIDMW { 463 class tFileInfo <<(S,cyan)>> { 464 +lFileLen : long 465 +lReadPINRef : long 466 +lWritePINRef : long 467 } 468} 469 470 471class tGuiInfo <<(S,cyan)>> { 472 +csChangeInfo : char* 473 +csRfu1 : char* 474 +csRfu2 : char* 475 +csRfu3 : char* 476 +csRfu4 : char* 477 +csUnblockChangeInfo : char* 478 +csUnblockMergeChangeInfo : char* 479 +csUnblockMergeNoChangeInfo : char* 480 +csUnblockNoChangeInfo : char* 481 +csVerifyInfo : char* 482} 483 484 485namespace eIDMW { 486 class tOdfInfo <<(S,cyan)>> { 487 +csAodfPath : std::string 488 +csCdfPath : std::string 489 +csDodfPath : std::string 490 +csPrkdfPath : std::string 491 +csPukdfPath : std::string 492 +csSecretPukdfPath : std::string 493 +csTrustedCdfPath : std::string 494 +csTrustedPukdfPath : std::string 495 +csUsefulCdfPath : std::string 496 } 497} 498 499 500namespace eIDMW { 501 class tPKCSFile <<(S,cyan)>> { 502 +byteArray : CByteArray 503 +isRead : bool 504 +path : std::string 505 +setDefault() : void 506 } 507} 508 509 510namespace eIDMW { 511 class tPin <<(S,cyan)>> { 512 +bValid : bool 513 +csLabel : std::string 514 +csLastChange : std::string 515 +csPath : std::string 516 +encoding : tPinEncoding 517 +ucPadChar : unsigned char 518 +ulAuthID : unsigned long 519 +ulFlags : unsigned long 520 +ulID : unsigned long 521 +ulMaxLen : unsigned long 522 +ulMinLen : unsigned long 523 +ulPinFlags : unsigned long 524 +ulPinRef : unsigned long 525 +ulPinType : unsigned long 526 +ulStoredLen : unsigned long 527 +ulUserConsent : unsigned long 528 } 529} 530 531 532namespace eIDMW { 533 class tPrivKey <<(S,cyan)>> { 534 +bUsedInP11 : bool 535 +bValid : bool 536 +csLabel : std::string 537 +csPath : std::string 538 +ulAuthID : unsigned long 539 +ulFlags : unsigned long 540 +ulID : unsigned long 541 +ulKeyAccessFlags : unsigned long 542 +ulKeyLenBytes : unsigned long 543 +ulKeyRef : unsigned long 544 +ulKeyUsageFlags : unsigned long 545 +ulUserConsent : unsigned long 546 } 547} 548 549 550namespace eIDMW { 551 class tReaderInfo <<(S,cyan)>> { 552 +csReader : std::string 553 +ulCurrentState : unsigned long 554 +ulEventState : unsigned long 555 } 556} 557 558 559namespace eIDMW { 560 class tTokenInfo <<(S,cyan)>> { 561 +iAppVersion : int 562 +iSecEnv : int 563 +iVersion : int 564 +piRecordInfo : int 565 +csHolder : std::string 566 +csIssuer : std::string 567 +csLabel : std::string 568 +csLastUpdate : std::string 569 +csManufactID : std::string 570 +csOwner : std::string 571 +csSerial : std::string 572 +oAlgoInfo : std::vector< tAlgoInfo> 573 +ulFlags : unsigned long 574 } 575} 576 577 578namespace eIDMW { 579 enum PinUsage { 580 DLG_USG_PIN_ADDRESS 581 DLG_USG_PIN_AUTH 582 DLG_USG_PIN_SIGN 583 PIN_USG_UNKNOWN 584 } 585} 586 587 588namespace eIDMW { 589 enum tBelpicDF { 590 BELPIC_DF 591 ID_DF 592 UNKNOWN_DF 593 } 594} 595 596 597namespace eIDMW { 598 enum tCacheAction { 599 CERT_CACHE 600 CHECK_16_CACHE 601 CHECK_SERIAL 602 DONT_CACHE 603 SIMPLE_CACHE 604 } 605} 606 607 608namespace eIDMW { 609 enum tCardStatus { 610 CARD_INSERTED 611 CARD_NOT_PRESENT 612 CARD_OTHER 613 CARD_REMOVED 614 CARD_STILL_PRESENT 615 CARD_UNKNOWN_STATE 616 } 617} 618 619 620namespace eIDMW { 621 enum tCardType { 622 CARD_BEID 623 CARD_UNKNOWN 624 } 625} 626 627 628namespace eIDMW { 629 enum tDisconnectMode { 630 DISCONNECT_LEAVE_CARD 631 DISCONNECT_RESET_CARD 632 } 633} 634 635 636namespace eIDMW { 637 enum tFileOperation { 638 FILE_OP_READ 639 FILE_OP_WRITE 640 } 641} 642 643 644namespace eIDMW { 645 enum tPKCSFileName { 646 AODF 647 CDF 648 EFDIR 649 ODF 650 PRKDF 651 TOKENINFO 652 } 653} 654 655 656namespace eIDMW { 657 enum tPinEncoding { 658 PIN_ENC_ASCII 659 PIN_ENC_BCD 660 PIN_ENC_GP 661 } 662} 663 664 665namespace eIDMW { 666 enum tPinOperation { 667 PIN_OP_CHANGE 668 PIN_OP_LOGOFF 669 PIN_OP_VERIFY 670 } 671} 672 673 674namespace eIDMW { 675 enum tSelectAppletMode { 676 ALW_SELECT_APPLET 677 DONT_SELECT_APPLET 678 TRY_SELECT_APPLET 679 } 680} 681 682 683 684 685 686/' Inheritance relationships '/ 687 688namespace eIDMW { 689 CP15Correction <|-- CBeidP15Correction 690} 691 692 693 694 695 696/' Aggregation relationships '/ 697 698namespace eIDMW { 699 CAutoLock o-- CCard 700} 701 702 703namespace eIDMW { 704 CAutoLock o-- CPCSC 705} 706 707 708namespace eIDMW { 709 CCard o-- CBeidP15Correction 710} 711 712 713namespace eIDMW { 714 CCard o-- CContext 715} 716 717 718namespace eIDMW { 719 CCard o-- CPinpad 720} 721 722 723namespace eIDMW { 724 CCardLayer o-- CContext 725} 726 727 728namespace eIDMW { 729 CCardLayer o-- CReader 730} 731 732 733namespace eIDMW { 734 CCardReaderInfo o-- CCardReaderInfo 735} 736 737 738namespace eIDMW { 739 CContext o-- CPCSC 740} 741 742 743namespace eIDMW { 744 CPKCS15 o-- CCard 745} 746 747 748namespace eIDMW { 749 CPKCS15 o-- PKCS15Parser 750} 751 752 753namespace eIDMW { 754 CPKCS15 o-- tCert 755} 756 757 758namespace eIDMW { 759 CPKCS15 o-- tDirInfo 760} 761 762 763namespace eIDMW { 764 CPKCS15 "10" o-- tPKCSFile 765} 766 767 768namespace eIDMW { 769 CPKCS15 o-- tPin 770} 771 772 773namespace eIDMW { 774 CPKCS15 o-- tPrivKey 775} 776 777 778namespace eIDMW { 779 CPinpad o-- CContext 780} 781 782 783namespace eIDMW { 784 CReader o-- CCard 785} 786 787 788namespace eIDMW { 789 CReader o-- CContext 790} 791 792 793namespace eIDMW { 794 CReader o-- CPKCS15 795} 796 797 798namespace eIDMW { 799 CReader o-- CPinpad 800} 801 802 803namespace eIDMW { 804 CReadersInfo o-- tReaderInfo 805} 806 807 808namespace eIDMW { 809 tTokenInfo o-- tAlgoInfo 810} 811 812 813 814 815@enduml 816