void eParentalSetup::plockChecked(int i) { parentalpin_enabled = i; if ( i && !changeParentalPin->isVisible() ) { // Force the user to setup a new pin if (ChangePin(changeParentalPin)) { changeParentalPin->show(); hidelocked->show(); } } else { if ( pinCheck::getInstance()->checkPin(pinCheck::parental) ) { parentalpin=-1; changeParentalPin->hide(); hidelocked->hide(); } else { hidelocked->show(); parentallock->setCheck(1); } } }
void eParentalSetup::slockChecked(int i) { setuppin_enabled = i; if ( i && !changeSetupPin->isVisible() ) { // Force the user to setup a new pin if (ChangePin(changeSetupPin)) { changeSetupPin->show(); } else { setuplock->setCheck(0); } } else { if ( pinCheck::getInstance()->checkPin(pinCheck::setup) ) { setuppin=-1; changeSetupPin->hide(); } else setuplock->setCheck(1); } }
void eParentalSetup::changePin(eButton *p) { ChangePin(p); }
int main(int argc, char **argv) { int i, rc; #if defined(_WIN32) && defined(_DEBUG) atexit((void(*)(void))_CrtDumpMemoryLeaks); #endif if (argc < 2) return Usage(); if (strcmp(argv[1], "--get-pin-status") == 0) { rc = GetPinStatus(); printf("get-pin-status returns: 0x%4x\n", rc); return 0; } if (strcmp(argv[1], "--save-files") == 0) { DumpAllFiles(argc >= 3 ? argv[2] : 0); return 0; } if (argc < 3) return Usage(); if (strcmp(argv[1], "--restore-files") == 0) { int rc = SC_Open(argv[2], 0); if (rc < 0) return rc; for (i = 3; i < argc; i++) { const char *name = argv[i]; int dataLen, off; uint8 *pData; uint8 afid[2]; uint16 fid; if (strlen(name) != 8 || strcmp(name + 4, ".asn") || Hex2Bin(name, 4, afid)) { printf("filename '%s' must be 'abcd.asn' where abcd is a valid hex number\n", name); continue; } fid = afid[0] << 8 | afid[1]; if (fid == 0x2f02) { printf("filename '%s' skipped, EF_DevAut is readonly\n", name); continue; } ReadFromFile(name, pData, dataLen); if (pData == NULL) { printf("cant read file '%s'\n", name); continue; } if (dataLen == 0) { free(pData); printf("file '%s' empty\n", name); continue; } rc = 0; for (off = 0; off < dataLen;) { int len = dataLen - off; if (len > MAX_OUT_IN - 6) len = MAX_OUT_IN - 6; rc = SC_WriteFile(fid, off, pData + off, len); if (rc < 0) break; off += len; } free(pData); if (rc < 0) { printf("write error %d file '%s'\n", rc, name); continue; } printf("file '%s' successfully restored\n", name); } SC_Close(); return 0; } if (strcmp(argv[1], "--init-token") == 0) { int len; uint8* buf; switch (argc) { default: return Usage(); case 3: rc = InitializeToken(argv[2], NULL, 0, NULL); break; case 4: rc = InitializeToken(argv[2], argv[3], 0, NULL); break; case 5: ReadFromFile(argv[4], buf, len); if (buf == NULL) { printf("file '%s' not found\n", argv[4]); return ERR_INVALID; } if (len < 32 || (len & 31)) { free(buf); printf("file length of '%s' must be a positive multiple of 32\n", argv[4]); return ERR_INVALID; } rc = InitializeToken(argv[2], argv[3], len / 32, buf); free(buf); break; } printf("init-token returns: 0x%4x\n", rc); return rc == 0x9000 ? 0 : rc; } if (strcmp(argv[1], "--unlock-pin") == 0) { if (!(3 <= argc && argc <= 3)) return Usage(); rc = UnlockPin(argv[2]); printf("unlock-pin returns: 0x%4x\n", rc); return rc == 0x9000 ? 0 : rc; } if (strcmp(argv[1], "--set-pin") == 0) { if (!(3 <= argc && argc <= 4)) return Usage(); rc = SetPin(argv[2], argc == 3 ? NULL : argv[3]); printf("set-pin returns: 0x%4x\n", rc); return rc == 0x9000 ? 0 : rc; } if (strcmp(argv[1], "--change-pin") == 0) { if (!(4 <= argc && argc <= 4)) return Usage(); rc = ChangePin(argv[2], argv[3]); printf("change-pin returns: 0x%4x\n", rc); return rc == 0x9000 ? 0 : rc; } if (strcmp(argv[1], "--change-so-pin") == 0) { if (!(4 <= argc && argc <= 4)) return Usage(); rc = ChangeSoPin(argv[2], argv[3]); printf("change-pin returns: 0x%4x\n", rc); return rc == 0x9000 ? 0 : rc; } if (strcmp(argv[1], "--wrap-key") == 0) { if (!(5 <= argc && argc <= 5)) return Usage(); rc = WrapKey(argv[2], atoi(argv[3]), argv[4]); printf("wrap-key returns: 0x%4x\n", rc); return rc == 0x9000 ? 0 : rc; } if (strcmp(argv[1], "--unwrap-key") == 0) { if (!(5 <= argc && argc <= 5)) return Usage(); rc = UnwrapKey(argv[2], atoi(argv[3]), argv[4]); printf("unwrap-key returns: 0x%4x\n", rc); return rc == 0x9000 ? 0 : rc; } return Usage(); }