コード例 #1
0
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  TestVectors
//
//  Tests AES CTR against fixed test vectors
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
static
bool
    TestVectors
    (
        void
    )
{
    uint32_t        vectorIndex;
    uint8_t         key [AES_KEY_SIZE_256];
    uint32_t        keySize = 0;
    uint8_t         iv [AES_CTR_IV_SIZE];
    uint8_t         vector [TEST_VECTOR_OUTPUT_SIZE];
    uint8_t         aesCtrOutput [TEST_VECTOR_OUTPUT_SIZE];
    uint8_t const   zeroBuffer [TEST_VECTOR_OUTPUT_SIZE] = {0};

    for( vectorIndex=0; vectorIndex<NUM_TEST_VECTORS; vectorIndex++ )
    {
        HexToBytes( gTestVectors[vectorIndex].KeyHex,        key, &keySize );
        HexToBytes( gTestVectors[vectorIndex].IvHex,         iv, NULL );
        HexToBytes( gTestVectors[vectorIndex].CipherTextHex, vector, NULL );

        AesCtrXorWithKey( key, keySize, iv, zeroBuffer, aesCtrOutput, TEST_VECTOR_OUTPUT_SIZE );
        if( 0 != memcmp( aesCtrOutput, vector, TEST_VECTOR_OUTPUT_SIZE ) )
        {
            printf( "Test vector (index:%u) failed\n", vectorIndex );
            return false;
        }
    }

    return true;
}
コード例 #2
0
ファイル: BuildPatchUtil.cpp プロジェクト: xiangyuan/Unreal4
void FBuildPatchUtils::GetFileDetailFromNewFilename(const FString& FileNewFilename, FGuid& FileGUID, FSHAHashData& FileHash)
{
	const FString FileFilename = FPaths::GetBaseFilename( FileNewFilename );
	FString GuidString;
	FString HashString;
	FileFilename.Split( TEXT( "_" ), &HashString, &GuidString );
	// Check that the strings are exactly as we expect otherwise this is not being used properly
	check( GuidString.Len() == 32 );
	check( HashString.Len() == 40 );
	HexToBytes( HashString, FileHash.Hash );
	FGuid::Parse( GuidString, FileGUID );
}
コード例 #3
0
ファイル: main.c プロジェクト: Redezem/cryptopals
int main(int argc, char** argv)
{
	//I'ma assume that the first arg was your string
	int i;
	if (argc != 2)
	{
		printf("ERROR: NEED ONE STRINGS \n");
		exit(EXIT_FAILURE);
	}
	char* strOne = argv[1];
	//char* strTwo = argv[2];

	unsigned char* newStr = HexToBytes(strOne);
	/*
	for(i = 0; i < strlen(newStr); i++)
	{
		printf("%d ",(int)newStr[i]);
	}
	printf("\n");
	*/
	struct baseMatcher* baseMatcher;
	baseMatcher = GenerateMatchingArray();
	/*
	for(i=0;i<64;i++)
	{
		printf("%c, %d\n",baseMatcher[i].matchChar,baseMatcher[i].matchInt);
	}
	*/

	char* magicReturnArray = ConvertByteStr(newStr, baseMatcher);

	printf("%s\n",magicReturnArray);

	free(baseMatcher);
	free(newStr);
	return 0;
}
コード例 #4
0
int _tmain(int argc, _TCHAR* argv[])
{
	if( argc > 1 )
	{
		if( wcscmp( argv[1], L"-Install" ) == 0 ){
			DriverLoad ();
			DatabaseInstall();
		}
		else if( wcscmp( argv[1], L"-Remove" ) == 0 ){
			DriverUnload();
		}
		else if( wcscmp( argv[1], L"-Map" ) == 0 )
		{
			if( argc > 2 )
			{
				TestEncryptFileMapping( argv[2] );
			}
		}
		else if( wcscmp( argv[1], L"-Run" ) == 0 ){
			StartDriverService();
			OpenDatabase( FALSE );
			HANDLE	RequestReadQueueEvent = CreateEvent( NULL, FALSE, FALSE, NULL );
			ThreadBag* bag;

			//Randinit();
			StartThread( DeviceIoThreadProc, NULL, &bag );

			if( bag != NULL )
			{

			}
				//WaitForSingleObject( bag->hThread, INFINITE );
			getchar();

			CloseDatabase();
		}
		else if( wcscmp( argv[1], L"-Write" ) == 0 ){
			StartDriverService();

			if( argc > 3 )
			{
				EncryptionControl(TRUE);
				TestEncryptProcess( argv[2], argv[3]  );
				EncryptionControl(FALSE);
			}else{
				wprintf(L"%s: -Write <Input File> <Output File>\n", argv[0]);
				return 1;
			}
		}else if( wcscmp( argv[1], L"-DB" ) == 0 )
		{
			//Randinit();
			DatabaseInstall();
			wprintf(L"Install database is OK.\n");
			OpenDatabase( FALSE );
			wprintf(L"Try to open database is OK.\n");
			PrivateKeyRequest* request = (PrivateKeyRequest*) malloc( sizeof(PrivateKeyRequest) + sizeof(WCHAR)* MAX_PATH );
			PrivateKeyResponse response;
			if( request != NULL )
			{
				memset( request, 0, sizeof(PrivateKeyRequest) + sizeof(WCHAR)* MAX_PATH );
				HexToBytes( (const unsigned char*)"585a59303031", request->Company, 12 );
				HexToBytes( (const unsigned char*)"6fe244d8d619064a8abfe23608d27d15", request->Md5, 32 );
				memcpy( request->Filename, L"E:\\testing\\test.doc", 19 * 2 );
				request->FilenameLength = 19 * 2;

				QueryPrimaryKey( request, &response );
				RenewPrimaryKey( request, &response );

				free( request );
			}
		}
		else if( wcscmp( argv[1], L"-Combine" ) == 0 ){
			WCHAR* Path = NULL;
			if( argc <= 2 )
			{
				wprintf(L"%s: -Combine <File Pattern> [<OutputFileName>] [<Changed Directory>]\n", argv[0]);
				return 1;
			}

			if( argc < 4 )
			{
				DWORD nSize = GetCurrentDirectory( 0, NULL );
				if( nSize > 0 )
				{
					Path = (WCHAR*) malloc( sizeof(WCHAR) * (nSize + 1) );
					if( Path != NULL )
					{
						if( GetCurrentDirectory( nSize, Path ) == 0 )
						{
							free( Path );
							Path = NULL;
						}
					}
				}
			}

			CombineDirectory( argv[2], argc > 3 ? argv[3] : L"combined.out", Path ); 
			
			if( Path != NULL )
			{
				free( Path );
			}
		}
		else if(  wcscmp( argv[1], L"-Copy" ) == 0 ) {
			if( argc >= 4 )
			{
				CopyFileDest( argv[2], argv[3], FALSE );
			}else{
				wprintf(L"%s: -Copy <Source File> <Dest File>\n", argv[0]);
			}
		}else if( argv[1][0] == L'-' ){
			wprintf( L"%s: -Install\n%s: -Remove\n", argv[0], argv[0] ); 
		}else{
			StartDriverService();
			TestDecryptProcess( L"c:\\Test\\test_out--gko-512.pdf" );
		}
	
	}
	return 0;
}