コード例 #1
0
ファイル: EncodingTable.cpp プロジェクト: StraDaMa/armips
bool EncodingTable::load(const std::wstring& fileName, TextFile::Encoding encoding)
{
	unsigned char hexBuffer[MAXHEXLENGTH];

	TextFile input;
	if (input.open(fileName,TextFile::Read,encoding) == false)
		return false;

	hexData.clear();
	valueData.clear();
	entries.clear();
	setTerminationEntry((unsigned char*)"\0",1);

	while (!input.atEnd())
	{
		std::wstring line = input.readLine();
		if (line.empty() || line[0] == '*') continue;
		
		if (line[0] == '/')
		{
			std::wstring hex = line.substr(1);
			if (hex.empty() || hex.length() > 2*MAXHEXLENGTH)
			{
				// error
				continue;
			}

			int length = parseHexString(hex,hexBuffer);
			if (length == -1)
			{
				// error
				continue;
			}

			setTerminationEntry(hexBuffer,length);
		} else {
			size_t pos = line.find(L'=');
			std::wstring hex = line.substr(0,pos);
			std::wstring value = line.substr(pos+1);

			if (hex.empty() || value.empty() || hex.length() > 2*MAXHEXLENGTH)
			{
				// error
				continue;
			}
			
			int length = parseHexString(hex,hexBuffer);
			if (length == -1)
			{
				// error
				continue;
			}

			addEntry(hexBuffer,length,value);
		}
	}

	return true;
}
コード例 #2
0
ファイル: breakSingleXOR.c プロジェクト: akrs/cmsi399
int main(int argc, char const *argv[]) {
    uint8_t* input = parseHexString("1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736", 68);
    int inputlen = 34;

    char* message = breakSingleXOR(input, inputlen);

    printf("Message: %s\n", message);
    free(message);

    return 0;
}
コード例 #3
0
ファイル: challenge3.c プロジェクト: dpindur/matasano-crypto
int main()
{
	unsigned char* plaintext = "1b37373331363f78151b7f2b783431333d78397828372d363c78373e783a393b3736";
	unsigned char* plaintextDecoded;
	int size = parseHexString(plaintext, &plaintextDecoded); 

	char key = solveSingleByteXor(plaintextDecoded, size);

	unsigned char* decrypted;
	singleByteXor(plaintextDecoded, key, size, &decrypted);

	printf("%s\n", decrypted);
	return 0;
}
コード例 #4
0
ファイル: pdfparser.c プロジェクト: Sayantan2048/myrice-JtR
static p_str*
parseRegularString(FILE *file) {
  unsigned int len, p;
  int ch;
  p_str *ret;
  uint8_t buf[BUFFSIZE];
  bool skip = false;

  ch = parseWhiteSpace(file);
  if(ch == '(') {
    p = 1;
    ch = getc(file);
    for(len=0; len < BUFFSIZE && p > 0 && ch != EOF; len++) {
      buf[len] = ch;
      if(skip == false) {
	if(ch == '(')
	  p++;
	else if(ch == ')')
	  p--;
	if(ch == '\\')
	  skip = true;
      }
      else
	skip = false;
      ch = getc(file);
    }
    ungetc(ch, file);
    ret = objStringToByte(buf, len);
  }
  else if(ch == '<') {
    len = 0;
    while(ch != '>' && len < BUFFSIZE && ch != EOF) {
      if((ch >= '0' && ch <= '9') ||
	 (ch >= 'a' && ch <= 'f') ||
	 (ch >= 'A' && ch <= 'F')) {
	buf[len++] = ch;
      }
      ch = getc(file);
    }
    ungetc(ch,file);
    ret = parseHexString(buf,len);
  }
  else
    ret = NULL;
return ret;
}