bool cN2Prov0501::Algo(int algo, const unsigned char *hd, unsigned char *hw) { if(algo==0x60) { hw[0]=hd[0]; hw[1]=hd[1]; hw[2]=hd[2]&0xF8; ExpandInput(hw); hw[63]|=0x80; hw[95]=hw[127]=hw[95]&0x7F; DoMap(SETSIZE,0,4); DoMap(IMPORT_J,hw+0x18); DoMap(IMPORT_D,hw+0x20); DoMap(IMPORT_B,hw+0x60); DoMap(0x37,hw+0x40); DoMap(EXPORT_C,hw); DoMap(IMPORT_A,hw+0x60); DoMap(0x3a); DoMap(EXPORT_C,hw+0x20); DoMap(0x43); DoMap(0x44,hw); memcpy(hw,hw+64,20); hw[0]&=7; DoMap(EXPORT_B,hw+3); memset(hw+3+0x20,0,128-(3+0x20)); return true; } PRINTF(L_SYS_ECM,"%04X: unknown MECM algo %02x",id,algo); return false; }
bool wxExVariable::Expand(wxExEx* ex, std::string& value) { switch (m_Type) { case VARIABLE_BUILTIN: if (!ExpandBuiltIn(ex, value)) { return false; } break; case VARIABLE_ENVIRONMENT: { wxString val; if (!wxGetEnv(m_Name, &val)) { return false; } value = val; } break; case VARIABLE_INPUT: case VARIABLE_INPUT_ONCE: case VARIABLE_INPUT_SAVE: if (!ExpandInput(value)) { return false; } break; case VARIABLE_READ: value = m_Value; break; case VARIABLE_TEMPLATE: if (!wxExViMacros::ExpandTemplate(ex, *this, value)) { return false; } break; default: wxFAIL; break; } // If there is a prefix, make a comment out of it. if (!m_Prefix.empty()) { value = ex->GetSTC()->GetLexer().MakeComment(m_Prefix, value); } return true; }