esrg-cvs Mailing List for ESRG Tool Set
Brought to you by:
dtashley
You can subscribe to this list here.
| 2003 |
Jan
|
Feb
|
Mar
|
Apr
(85) |
May
(66) |
Jun
(5) |
Jul
(5) |
Aug
(1) |
Sep
(2) |
Oct
|
Nov
|
Dec
(1) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(2) |
Feb
(11) |
Mar
(11) |
Apr
(3) |
May
|
Jun
(1) |
Jul
(3) |
Aug
(7) |
Sep
(11) |
Oct
(10) |
Nov
(2) |
Dec
|
| 2005 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
(8) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(14) |
Dec
|
|
From: David T. A. <dta...@us...> - 2009-11-29 03:35:30
|
Update of /cvsroot/esrg/sfesrg/esrgpcpj/gfsw In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv18626/gfsw Modified Files: gfsw.sln Log Message: Release build. Index: gfsw.sln =================================================================== RCS file: /cvsroot/esrg/sfesrg/esrgpcpj/gfsw/gfsw.sln,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** gfsw.sln 28 Nov 2009 00:16:30 -0000 1.2 --- gfsw.sln 29 Nov 2009 03:35:20 -0000 1.3 *************** *** 10,15 **** EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution ! {DD4EB5C9-833A-4F23-AB99-1C98B30D5FA4}.Debug|Win32.ActiveCfg = Debug|Win32 ! {DD4EB5C9-833A-4F23-AB99-1C98B30D5FA4}.Debug|Win32.Build.0 = Debug|Win32 {DD4EB5C9-833A-4F23-AB99-1C98B30D5FA4}.Release|Win32.ActiveCfg = Release|Win32 {DD4EB5C9-833A-4F23-AB99-1C98B30D5FA4}.Release|Win32.Build.0 = Release|Win32 --- 10,15 ---- EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution ! {DD4EB5C9-833A-4F23-AB99-1C98B30D5FA4}.Debug|Win32.ActiveCfg = Release|Win32 ! {DD4EB5C9-833A-4F23-AB99-1C98B30D5FA4}.Debug|Win32.Build.0 = Release|Win32 {DD4EB5C9-833A-4F23-AB99-1C98B30D5FA4}.Release|Win32.ActiveCfg = Release|Win32 {DD4EB5C9-833A-4F23-AB99-1C98B30D5FA4}.Release|Win32.Build.0 = Release|Win32 |
|
From: David T. A. <dta...@us...> - 2009-11-29 02:16:14
|
Update of /cvsroot/esrg/sfesrg/esrgpcpj/gfsw In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv31511/gfsw Modified Files: gfsw.c Log Message: Passed final review. Index: gfsw.c =================================================================== RCS file: /cvsroot/esrg/sfesrg/esrgpcpj/gfsw/gfsw.c,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** gfsw.c 28 Nov 2009 18:17:03 -0000 1.29 --- gfsw.c 29 Nov 2009 02:16:04 -0000 1.30 *************** *** 269,279 **** hwnd = CreateWindowEx ( WS_EX_TOPMOST, ! GFSW_szAppName, // window class name ! TEXT ("GUI File Signature Widget " BUILD_CONFIG_RELEASE_VERSION), // window caption WS_OVERLAPPEDWINDOW, // window style CW_USEDEFAULT, // initial x position CW_USEDEFAULT, // initial y position initial_width, // initial x size ! initial_height, // initial y size NULL, // parent window handle hmenu, // window menu handle --- 269,279 ---- hwnd = CreateWindowEx ( WS_EX_TOPMOST, ! GFSW_szAppName, // window class name ! TEXT ("FileHash v0.1"), // window caption WS_OVERLAPPEDWINDOW, // window style CW_USEDEFAULT, // initial x position CW_USEDEFAULT, // initial y position initial_width, // initial x size ! initial_height, // initial y size NULL, // parent window handle hmenu, // window menu handle *************** *** 583,587 **** NULL) ; // creation parameters //Print initial usage instructions. ! SetWindowText(te_wind, "To calculate file sizes, CRC-32s, and [binary] MD-5 sums, just " "drag and drop files into this box (from Windows Explorer " "or a similar application), or use the FILE->OPEN " --- 583,588 ---- NULL) ; // creation parameters //Print initial usage instructions. ! SetWindowText(te_wind, "To calculate CRC-32 cyclic redundancy codes, MD-5 message digests, " ! "and SHA-512 message digests, just " "drag and drop files into this box (from Windows Explorer " "or a similar application), or use the FILE->OPEN " *************** *** 835,842 **** { char *msg; ! char *first_line = "GFSW (GUI file signature widget)\n\n"; char *second_line = "[Built on " __DATE__ " at " __TIME__ "]\n\n"; ! msg = malloc(strlen(first_line)+strlen(second_line)+strlen(BUILD_CONFIG_HelpAboutMsgIdString)+1); assert(msg != NULL); --- 836,844 ---- { char *msg; ! char *first_line = "FileHash (GUI file message digest widget)\n\n"; char *second_line = "[Built on " __DATE__ " at " __TIME__ "]\n\n"; + char *third_line = "Please contact Dave Ashley (DA...@GM...) with any issues."; ! msg = malloc(strlen(first_line)+strlen(second_line)+strlen(third_line)+1); assert(msg != NULL); *************** *** 844,850 **** if (msg) { ! strcpy_s(msg, strlen(first_line)+strlen(second_line)+strlen(BUILD_CONFIG_HelpAboutMsgIdString)+1, first_line); ! strcat_s(msg, strlen(first_line)+strlen(second_line)+strlen(BUILD_CONFIG_HelpAboutMsgIdString)+1, second_line); ! strcat_s(msg, strlen(first_line)+strlen(second_line)+strlen(BUILD_CONFIG_HelpAboutMsgIdString)+1, BUILD_CONFIG_HelpAboutMsgIdString); MessageBox (hwnd, msg, --- 846,852 ---- if (msg) { ! strcpy_s(msg, strlen(first_line)+strlen(second_line)+strlen(third_line)+1, first_line); ! strcat_s(msg, strlen(first_line)+strlen(second_line)+strlen(third_line)+1, second_line); ! strcat_s(msg, strlen(first_line)+strlen(second_line)+strlen(third_line)+1, third_line); MessageBox (hwnd, msg, *************** *** 858,887 **** { MessageBox (hwnd, ! "This widget provides information useful in signaturing \n" ! "files: that is, forming hash functions of files that\n" ! "are unlikely to have the same value if the files are\n" ! "different.\n" ! "\n" ! "The CRC-32 is very reliable, and will reliably guard\n" ! "against file download errors. However, a CRC-32 is\n" ! "vulnerable to deliberate tampering: in general, a file\n" ! "may be easily modified to exhibit a given CRC-32.\n" ! "Thus, the CRC-32 is reliable protection against trans-\n" ! "mission errors, but no protection against digital\n" ! "forgery.\n" ! "\n" ! "The MD-5 message digest function is designed to provide \n" ! "strong protection against digital forgery. That is,\n" ! "there is no known [computationally tractable] way to\n" ! "modify a file to exhibit a given MD-5. The MD-5 message \n" ! "digest function is very commonly used in Unix systems\n" ! "(the \"md5sum\" program). This utility always calculates\n" ! "the MD-5 sum in binary mode (\"md5sum -b <filename>\" \n" ! "on a Unix system). For a file which is byte-for-byte the\n" ! "same, this utility should calculate the same MD-5 as\n" ! "\"md5sum -b <filename>\" will on a Unix system. Thus,\n" ! "this utility can be used to check the integrity of\n" ! "transfers from Unix systems. This utility will not\n" ! "calculate text-mode MD-5 functions.", GFSW_szAppName, MB_OK|MB_ICONINFORMATION) ; --- 860,866 ---- { MessageBox (hwnd, ! "This program was written by Dave Ashley\n" ! "(DA...@GM...). Please feel free\n" ! "to correspond by e-mail.", GFSW_szAppName, MB_OK|MB_ICONINFORMATION) ; *************** *** 1282,1285 **** --- 1261,1267 ---- /****************************************************************************** ** $Log$ + ** Revision 1.30 2009/11/29 02:16:04 dtashley + ** Passed final review. + ** ** Revision 1.29 2009/11/28 18:17:03 dtashley ** Development edits. *************** *** 1381,1385 **** ******************************************************************************* ** End of GFSW.C. */ - - - --- 1363,1364 ---- |
|
From: David T. A. <dta...@us...> - 2009-11-29 02:16:14
|
Update of /cvsroot/esrg/sfesrg/esrgpcpj/shared/c_datd In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv31511/shared/c_datd Modified Files: esrg_sha512.c esrg_sha512.h Log Message: Passed final review. Index: esrg_sha512.h =================================================================== RCS file: /cvsroot/esrg/sfesrg/esrgpcpj/shared/c_datd/esrg_sha512.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** esrg_sha512.h 28 Nov 2009 19:09:02 -0000 1.3 --- esrg_sha512.h 29 Nov 2009 02:16:05 -0000 1.4 *************** *** 11,20 **** #endif ! //Fundamental state (or RFC 1321 calls it context) for forming ! //MD5s. Conceptually private to this module. struct ESRG_SHA512_Sha512StateStruct { unsigned __int64 H0, H1, H2, H3, H4, H5, H6, H7; ! //Directly from FIPS 180-3. unsigned __int64 bit_count; //The count of bits processed thus far. The algorithm here --- 11,21 ---- #endif ! //Fundamental state for forming ! //SHA-512s. Conceptually private to this module. struct ESRG_SHA512_Sha512StateStruct { unsigned __int64 H0, H1, H2, H3, H4, H5, H6, H7; ! //Directly from FIPS 180-3. In retrospect, this might have ! //been better implemented as an array. unsigned __int64 bit_count; //The count of bits processed thus far. The algorithm here *************** *** 22,30 **** //each byte processed. FIPS 180-3 calls for processing //messages up to length 2^128, but for obvious reasons ! //we don't do that. unsigned __int64 M[16]; ! //These are the words corresponding to the chars. We don't ! //dare union them because of big-endian/little-endian concerns. ! //The "M" nomenclature is from FIPS 180-3. unsigned char buf[128]; //We can't proceed to execute a round unless we have the --- 23,35 ---- //each byte processed. FIPS 180-3 calls for processing //messages up to length 2^128, but for obvious reasons ! //we don't do that. 2^64-1 bits is in excess of 2^61-1 ! //bytes, or somewhere around 2,000 terabytes. This ! //isn't a practical limit with current computer technology. unsigned __int64 M[16]; ! //These are the words corresponding to the chars (below). We don't ! //dare union to extract them because of big-endian/little-endian concerns. ! //The "M" nomenclature is from FIPS 180-3. At the time the ! //SHA-512 rounds are done, the chars (below) are converted to words ! //(this field) so that the rounds can be done using the words. unsigned char buf[128]; //We can't proceed to execute a round unless we have the *************** *** 36,39 **** --- 41,45 ---- }; + //Result structure, used to hold result. Caller is allowed to //pick it apart. *************** *** 46,49 **** --- 52,56 ---- }; + //Initializes the SHA512 calculation structure. DECMOD_ESRG_SHA512 *************** *** 74,77 **** --- 81,87 ---- /*************************************************************************** ** $Log$ + ** Revision 1.4 2009/11/29 02:16:05 dtashley + ** Passed final review. + ** ** Revision 1.3 2009/11/28 19:09:02 dtashley ** Appears to be working. Ready for final review and cleanup. Index: esrg_sha512.c =================================================================== RCS file: /cvsroot/esrg/sfesrg/esrgpcpj/shared/c_datd/esrg_sha512.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** esrg_sha512.c 28 Nov 2009 19:09:02 -0000 1.4 --- esrg_sha512.c 29 Nov 2009 02:16:05 -0000 1.5 *************** *** 131,134 **** --- 131,135 ---- } + //Copies the buffer of words into a string buffer of string length 128, and also places //the zero terminator, which means that the string supplied by the caller must be of size *************** *** 440,443 **** --- 441,447 ---- /****************************************************************************** ** $Log$ + ** Revision 1.5 2009/11/29 02:16:05 dtashley + ** Passed final review. + ** ** Revision 1.4 2009/11/28 19:09:02 dtashley ** Appears to be working. Ready for final review and cleanup. |
|
From: David T. A. <dta...@us...> - 2009-11-28 19:09:19
|
Update of /cvsroot/esrg/sfesrg/esrgpcpj/shared/c_datd In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv19516/shared/c_datd Modified Files: esrg_sha512.c esrg_sha512.h Log Message: Appears to be working. Ready for final review and cleanup. Index: esrg_sha512.h =================================================================== RCS file: /cvsroot/esrg/sfesrg/esrgpcpj/shared/c_datd/esrg_sha512.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** esrg_sha512.h 28 Nov 2009 06:56:28 -0000 1.2 --- esrg_sha512.h 28 Nov 2009 19:09:02 -0000 1.3 *************** *** 40,45 **** struct ESRG_SHA512_Sha512ResultStruct { ! unsigned sha512_words[4]; ! char sha512_chars[129]; //Zero terminated string containing MD5 formed. }; --- 40,46 ---- struct ESRG_SHA512_Sha512ResultStruct { ! unsigned __int64 sha512_words[8]; ! //Hash in binary form, as the 64-bit integers. ! char sha512_chars[129]; //Zero terminated string containing MD5 formed. }; *************** *** 73,76 **** --- 74,80 ---- /*************************************************************************** ** $Log$ + ** Revision 1.3 2009/11/28 19:09:02 dtashley + ** Appears to be working. Ready for final review and cleanup. + ** ** Revision 1.2 2009/11/28 06:56:28 dtashley ** Edits. *************** *** 78,82 **** ** Revision 1.1 2009/11/28 00:09:15 dtashley ** Initial checkin. - ** **************************************************************************** ** End of ESRG_SHA512.H. */ --- 82,85 ---- Index: esrg_sha512.c =================================================================== RCS file: /cvsroot/esrg/sfesrg/esrgpcpj/shared/c_datd/esrg_sha512.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** esrg_sha512.c 28 Nov 2009 18:17:03 -0000 1.3 --- esrg_sha512.c 28 Nov 2009 19:09:02 -0000 1.4 *************** *** 97,101 **** //Copies the byte buffer to the word buffer within the state block. //This is done in a way which hides big-endian/little-endian concerns. ! static void ESRG_SHA512_CopyBytesToWords(struct ESRG_SHA512_Sha512StateStruct *arg) { --- 97,101 ---- //Copies the byte buffer to the word buffer within the state block. //This is done in a way which hides big-endian/little-endian concerns. ! // static void ESRG_SHA512_CopyBytesToWords(struct ESRG_SHA512_Sha512StateStruct *arg) { *************** *** 131,140 **** } ! //Copies out the buffer of words into a string buffer of string length 128, and also places //the zero terminator, which means that the string supplied by the caller must be of size //129 or larger. // ! static void ESRG_SHA512_CopyWordsToStringBuffer(struct ESRG_SHA512_Sha512StateStruct *arg, ! char *buf) { unsigned int i, j; --- 131,139 ---- } ! //Copies the buffer of words into a string buffer of string length 128, and also places //the zero terminator, which means that the string supplied by the caller must be of size //129 or larger. // ! static void ESRG_SHA512_CopyWordsToStringBuffer(struct ESRG_SHA512_Sha512ResultStruct *arg) { unsigned int i, j; *************** *** 143,147 **** assert(arg != NULL); - assert(buf != NULL); //Copy the buffer contents into the words. We need to be careful --- 142,145 ---- *************** *** 153,193 **** for (i=0; i<8; i++) { ! //Grab the correct word. In retrospect, the H0 ... H7 variables ! //probably should have been an array. ! // ! switch(i) ! { ! default: ! assert(0); ! break; ! case 0: ! woi = arg->H0; ! break; ! case 1: ! woi = arg->H1; ! break; ! case 2: ! woi = arg->H2; ! break; ! case 3: ! woi = arg->H3; ! break; ! case 4: ! woi = arg->H4; ! break; ! case 5: ! woi = arg->H5; ! break; ! case 6: ! woi = arg->H6; ! break; ! case 7: ! woi = arg->H7; ! break; ! } //Form a pointer to the buffer location of interest. We work //backwards. ! puc = (unsigned char *)buf + (i * 16) + 15; //Fill in the buffer. --- 151,159 ---- for (i=0; i<8; i++) { ! woi = arg->sha512_words[i]; //Form a pointer to the buffer location of interest. We work //backwards. ! puc = (unsigned char *)(arg->sha512_chars) + (i * 16) + 15; //Fill in the buffer. *************** *** 201,209 **** //Place the zero string terminator. ! buf[128] = 0; } - //Does the SHA-512 rounds as specified by FIPS 180-3. --- 167,174 ---- //Place the zero string terminator. ! arg->sha512_chars[128] = 0; } //Does the SHA-512 rounds as specified by FIPS 180-3. *************** *** 303,307 **** + W[i]; // ! T2 = ESRG_SHA512_FUNC_SIGMABIG_1(a) + ESRG_SHA512_FUNC_MAJ(a, b, c); // --- 268,272 ---- + W[i]; // ! T2 = ESRG_SHA512_FUNC_SIGMABIG_0(a) + ESRG_SHA512_FUNC_MAJ(a, b, c); // *************** *** 390,489 **** struct ESRG_SHA512_Sha512ResultStruct *result) { - #if 0 - unsigned int low_32, high_32, high_32_copy, low_32_copy; - unsigned int byte_offset; - unsigned int buffer_offset; - unsigned char length_buf[8]; - //int i; - - - //Obtain easier-to-use indices. These provide a snapshot of the - //length before padding is done. - low_32 = (unsigned int)state->bit_count; - high_32 = (unsigned int)(state->bit_count >> 32); - byte_offset = low_32 >> 3; - buffer_offset = byte_offset & 0x3F; - - //We need to pad the buffer out to 8 bytes short of a multiple, - //per RFC 1321. - ESRG_MD5_Md5StateStructAddData(state, - ESRG_MD5_pad_table, - (buffer_offset==56) ? (64) : ((56 - buffer_offset) & 0x3F)); - - //At this point we are fully prepped to stuff in the length in bits. - //Prepare the length in a buffer. - high_32_copy = high_32; - low_32_copy = low_32; - length_buf[0] = (unsigned char)(low_32_copy); - length_buf[1] = (unsigned char)(low_32_copy >> 8); - length_buf[2] = (unsigned char)(low_32_copy >> 16); - length_buf[3] = (unsigned char)(low_32_copy >> 24); - length_buf[4] = (unsigned char)(high_32_copy); - length_buf[5] = (unsigned char)(high_32_copy >> 8); - length_buf[6] = (unsigned char)(high_32_copy >> 16); - length_buf[7] = (unsigned char)(high_32_copy >> 24); - - //Tack on the length. This is guaranteed to generate end up with - //the last thing being done the compute plus the index being zero. - // - ESRG_MD5_Md5StateStructAddData(state, - length_buf, - 8); - - //Be absolutely sure we are rolled over to zero. - assert((((int)state->bit_count) & 0x1FF) == 0); - - //Zero out the return state, just to be sure. - memset(result, 0, sizeof(struct ESRG_MD5_Md5ResultStruct)); - - //Give caller the binary version. - result->md5_words[0] = state->A; - result->md5_words[1] = state->B; - result->md5_words[2] = state->C; - result->md5_words[3] = state->D; - - //Convert to string for caller. - CHARFUNC_int_to_lc_hex_rev(state->A, result->md5_chars + 0); - CHARFUNC_int_to_lc_hex_rev(state->B, result->md5_chars + 8); - CHARFUNC_int_to_lc_hex_rev(state->C, result->md5_chars + 16); - CHARFUNC_int_to_lc_hex_rev(state->D, result->md5_chars + 24); - - //Because of the way the CHARFUNC_int_to_lc_hex_rev() function - //works, it produces the mirror image of the sequence of nibbles. - //This is not quite what we want. What we want (least significant - //byte first, but within each byte most significant nibble first) - //from each integer is this: - // - // n1 n0 n3 n2 n5 n4 n7 n6 - // - //but what we get from that function is this: - // - // n0 n1 n2 n3 n4 n5 n6 n6, - // - //so we have to swap nibbles in each byte. - // - { - int i; - char temp; - - for (i=0; i<16; i++) - { - temp = result->md5_chars[i*2]; - result->md5_chars[i*2] = result->md5_chars[i*2+1]; - result->md5_chars[i*2+1] = temp; - } - } - - result->md5_chars[32] = 0; //Terminator. - - //Destroy the state, which may contain sensitive information. - //This idea came from Rivest's sample code. - memset(state, 0, sizeof(struct ESRG_MD5_Md5StateStruct)); - - #endif - unsigned __int64 msglen; //Used to hold message length before we pad the message. ! unsigned char c01 = 0x80; //Used to append the "1" per FIPS 180-3. unsigned char c00 = 0x00; --- 355,361 ---- struct ESRG_SHA512_Sha512ResultStruct *result) { unsigned __int64 msglen; //Used to hold message length before we pad the message. ! unsigned char c80 = 0x80; //Used to append the "1" per FIPS 180-3. unsigned char c00 = 0x00; *************** *** 502,506 **** //this software module only allows the addition of bytes (not bits), adding the //"1" will always involve adding the byte 0x80. ! ESRG_SHA512_Sha512StateStructAddData(state, &c01, 1); //Add enough 0's to the message so that we have exactly room for 16 bytes (128 bits) --- 374,378 ---- //this software module only allows the addition of bytes (not bits), adding the //"1" will always involve adding the byte 0x80. ! ESRG_SHA512_Sha512StateStructAddData(state, &c80, 1); //Add enough 0's to the message so that we have exactly room for 16 bytes (128 bits) *************** *** 510,529 **** //Calculate the length as a series of bytes. ! length_buf[15] = 0; ! length_buf[14] = 0; ! length_buf[13] = 0; ! length_buf[12] = 0; ! length_buf[11] = 0; ! length_buf[10] = 0; ! length_buf[ 9] = 0; ! length_buf[ 8] = 0; ! length_buf[ 7] = (unsigned char)((msglen >> 56) & 0xFF); ! length_buf[ 6] = (unsigned char)((msglen >> 48) & 0xFF);; ! length_buf[ 5] = (unsigned char)((msglen >> 40) & 0xFF);; ! length_buf[ 4] = (unsigned char)((msglen >> 32) & 0xFF);; ! length_buf[ 3] = (unsigned char)((msglen >> 24) & 0xFF);; ! length_buf[ 2] = (unsigned char)((msglen >> 16) & 0xFF);; ! length_buf[ 1] = (unsigned char)((msglen >> 8) & 0xFF);; ! length_buf[ 0] = (unsigned char)((msglen) & 0xFF);; //Add the length to the message. This should work out to generate the --- 382,401 ---- //Calculate the length as a series of bytes. ! length_buf[ 0] = 0; ! length_buf[ 1] = 0; ! length_buf[ 2] = 0; ! length_buf[ 3] = 0; ! length_buf[ 4] = 0; ! length_buf[ 5] = 0; ! length_buf[ 6] = 0; ! length_buf[ 7] = 0; ! length_buf[ 8] = (unsigned char)((msglen >> 56) & 0xFF); ! length_buf[ 9] = (unsigned char)((msglen >> 48) & 0xFF); ! length_buf[10] = (unsigned char)((msglen >> 40) & 0xFF); ! length_buf[11] = (unsigned char)((msglen >> 32) & 0xFF); ! length_buf[12] = (unsigned char)((msglen >> 24) & 0xFF); ! length_buf[13] = (unsigned char)((msglen >> 16) & 0xFF); ! length_buf[14] = (unsigned char)((msglen >> 8) & 0xFF); ! length_buf[15] = (unsigned char)((msglen) & 0xFF); //Add the length to the message. This should work out to generate the *************** *** 531,537 **** ESRG_SHA512_Sha512StateStructAddData(state, length_buf, 16); ! //Form a string from the hash vector. ! ESRG_SHA512_CopyWordsToStringBuffer(state, result->sha512_chars); //Destroy the state, which may contain sensitive information. --- 403,418 ---- ESRG_SHA512_Sha512StateStructAddData(state, length_buf, 16); ! //Copy the words from the state vector to the result vector. ! result->sha512_words[0] = state->H0; ! result->sha512_words[1] = state->H1; ! result->sha512_words[2] = state->H2; ! result->sha512_words[3] = state->H3; ! result->sha512_words[4] = state->H4; ! result->sha512_words[5] = state->H5; ! result->sha512_words[6] = state->H6; ! result->sha512_words[7] = state->H7; + //Form a string from the hash vector. + ESRG_SHA512_CopyWordsToStringBuffer(result); //Destroy the state, which may contain sensitive information. *************** *** 559,562 **** --- 440,446 ---- /****************************************************************************** ** $Log$ + ** Revision 1.4 2009/11/28 19:09:02 dtashley + ** Appears to be working. Ready for final review and cleanup. + ** ** Revision 1.3 2009/11/28 18:17:03 dtashley ** Development edits. |
|
From: David T. A. <dta...@us...> - 2009-11-28 18:17:11
|
Update of /cvsroot/esrg/sfesrg/esrgpcpj/gfsw In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv14969/gfsw Modified Files: gfsw.c Log Message: Development edits. Index: gfsw.c =================================================================== RCS file: /cvsroot/esrg/sfesrg/esrgpcpj/gfsw/gfsw.c,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** gfsw.c 28 Nov 2009 02:00:09 -0000 1.28 --- gfsw.c 28 Nov 2009 18:17:03 -0000 1.29 *************** *** 247,252 **** //Dope it up linearly. ! initial_width = (initial_width * 700)/10; ! initial_height = (initial_height * 85)/10; { --- 247,252 ---- //Dope it up linearly. ! initial_width = (initial_width * 1500)/10; ! initial_height = (initial_height * 150)/10; { *************** *** 1282,1285 **** --- 1282,1288 ---- /****************************************************************************** ** $Log$ + ** Revision 1.29 2009/11/28 18:17:03 dtashley + ** Development edits. + ** ** Revision 1.28 2009/11/28 02:00:09 dtashley ** SHA-512 function calls added. |
|
From: David T. A. <dta...@us...> - 2009-11-28 18:17:11
|
Update of /cvsroot/esrg/sfesrg/esrgpcpj/shared/c_datd In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv14969/shared/c_datd Modified Files: esrg_sha512.c Log Message: Development edits. Index: esrg_sha512.c =================================================================== RCS file: /cvsroot/esrg/sfesrg/esrgpcpj/shared/c_datd/esrg_sha512.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** esrg_sha512.c 28 Nov 2009 06:56:28 -0000 1.2 --- esrg_sha512.c 28 Nov 2009 18:17:03 -0000 1.3 *************** *** 106,131 **** //Copy the buffer contents into the words. We need to be careful //to do this correctly, because of big-endian/little-endian concerns. for (i=0; i<16; i++) { assert((i * 8 + 3) < 128); ! arg->M[i] = (((unsigned __int64)(arg->buf[i*8+7])) << 56) + ! (((unsigned __int64)(arg->buf[i*8+6])) << 48) + ! (((unsigned __int64)(arg->buf[i*8+5])) << 40) + ! (((unsigned __int64)(arg->buf[i*8+4])) << 32) + ! (((unsigned __int64)(arg->buf[i*8+3])) << 24) + ! (((unsigned __int64)(arg->buf[i*8+2])) << 16) + ! (((unsigned __int64)(arg->buf[i*8+1])) << 8) + ! (((unsigned __int64)(arg->buf[i*8]))); } } //Does the SHA-512 rounds as specified by FIPS 180-3. --- 106,209 ---- //Copy the buffer contents into the words. We need to be careful //to do this correctly, because of big-endian/little-endian concerns. + //From FIPS 180-3 (alluded to, not really stated), the message is + //loaded in from M[0] down to M[15]. Additionally, per the other + //conventions in the document, the first byte is uppermost in each + //word. for (i=0; i<16; i++) { assert((i * 8 + 3) < 128); ! arg->M[i] = (((unsigned __int64)(arg->buf[i*8+0])) << 56) + ! (((unsigned __int64)(arg->buf[i*8+1])) << 48) + ! (((unsigned __int64)(arg->buf[i*8+2])) << 40) + ! (((unsigned __int64)(arg->buf[i*8+3])) << 32) + ! (((unsigned __int64)(arg->buf[i*8+4])) << 24) + ! (((unsigned __int64)(arg->buf[i*8+5])) << 16) + ! (((unsigned __int64)(arg->buf[i*8+6])) << 8) + ! (((unsigned __int64)(arg->buf[i*8+7]))); ! } ! } ! ! //Copies out the buffer of words into a string buffer of string length 128, and also places ! //the zero terminator, which means that the string supplied by the caller must be of size ! //129 or larger. ! // ! static void ESRG_SHA512_CopyWordsToStringBuffer(struct ESRG_SHA512_Sha512StateStruct *arg, ! char *buf) ! { ! unsigned int i, j; ! unsigned char *puc; ! unsigned __int64 woi; ! ! assert(arg != NULL); ! assert(buf != NULL); ! ! //Copy the buffer contents into the words. We need to be careful ! //to do this correctly, because of big-endian/little-endian concerns. ! //From FIPS 180-3 (alluded to, not really stated), the message is ! //loaded in from M[0] down to M[15]. Additionally, per the other ! //conventions in the document, the first byte is uppermost in each ! //word. ! for (i=0; i<8; i++) ! { ! //Grab the correct word. In retrospect, the H0 ... H7 variables ! //probably should have been an array. ! // ! switch(i) ! { ! default: ! assert(0); ! break; ! case 0: ! woi = arg->H0; ! break; ! case 1: ! woi = arg->H1; ! break; ! case 2: ! woi = arg->H2; ! break; ! case 3: ! woi = arg->H3; ! break; ! case 4: ! woi = arg->H4; ! break; ! case 5: ! woi = arg->H5; ! break; ! case 6: ! woi = arg->H6; ! break; ! case 7: ! woi = arg->H7; ! break; ! } ! ! //Form a pointer to the buffer location of interest. We work ! //backwards. ! puc = (unsigned char *)buf + (i * 16) + 15; ! ! //Fill in the buffer. ! for (j=0; j<16; j++) ! { ! *puc = (unsigned char)CHARFUNC_nibble_to_lc_hex_digit((int)(woi & 0xF)); ! woi >>= 4; ! puc--; ! } } + + //Place the zero string terminator. + buf[128] = 0; } + //Does the SHA-512 rounds as specified by FIPS 180-3. *************** *** 268,275 **** ! void ESRG_SHA512_Sha512StateStructAddData(struct ESRG_SHA512_Sha512StateStruct *arg, ! void *pointer_in, ! unsigned len) { } --- 346,387 ---- ! void ESRG_SHA512_Sha512StateStructAddData(struct ESRG_SHA512_Sha512StateStruct *arg, ! void *pointer_in, ! unsigned len) { + unsigned int low_32; + unsigned int byte_offset; + unsigned char *data; + + assert(arg != NULL); + assert(pointer_in != NULL); + + data = (unsigned char *)pointer_in; + //It is easier to do it this way, rather than cast all the time. + + low_32 = (unsigned int)arg->bit_count; + //Copy off the least significant bits. Easier to do once. We only + //need the 32 least significant because the block size is 0 modulo 1024. + + byte_offset = low_32 >> 3; + //This gives our byte offset, up to 500+Mb or so. + + while(len--) + { + //We process rounds AFTER a byte is added to the buffer. So + //it is always safe to add a byte first. + arg->buf[byte_offset & 0x7F] = *data; + + //Nothing to do unless this was the final byte of the buffer. + if ((byte_offset & 0x7F) == 127) + { + ESRG_SHA512_DoSha512Rounds(arg); + } + + //Increment. + data++; + byte_offset++; + arg->bit_count += 8; + } } *************** *** 278,287 **** struct ESRG_SHA512_Sha512ResultStruct *result) { ! unsigned i; - for (i=0; i<128; i++) - result->sha512_chars[i] = 'X'; ! result->sha512_chars[128] = 0; } --- 390,541 ---- struct ESRG_SHA512_Sha512ResultStruct *result) { ! #if 0 ! unsigned int low_32, high_32, high_32_copy, low_32_copy; ! unsigned int byte_offset; ! unsigned int buffer_offset; ! unsigned char length_buf[8]; ! //int i; ! //Obtain easier-to-use indices. These provide a snapshot of the ! //length before padding is done. ! low_32 = (unsigned int)state->bit_count; ! high_32 = (unsigned int)(state->bit_count >> 32); ! byte_offset = low_32 >> 3; ! buffer_offset = byte_offset & 0x3F; ! ! //We need to pad the buffer out to 8 bytes short of a multiple, ! //per RFC 1321. ! ESRG_MD5_Md5StateStructAddData(state, ! ESRG_MD5_pad_table, ! (buffer_offset==56) ? (64) : ((56 - buffer_offset) & 0x3F)); ! ! //At this point we are fully prepped to stuff in the length in bits. ! //Prepare the length in a buffer. ! high_32_copy = high_32; ! low_32_copy = low_32; ! length_buf[0] = (unsigned char)(low_32_copy); ! length_buf[1] = (unsigned char)(low_32_copy >> 8); ! length_buf[2] = (unsigned char)(low_32_copy >> 16); ! length_buf[3] = (unsigned char)(low_32_copy >> 24); ! length_buf[4] = (unsigned char)(high_32_copy); ! length_buf[5] = (unsigned char)(high_32_copy >> 8); ! length_buf[6] = (unsigned char)(high_32_copy >> 16); ! length_buf[7] = (unsigned char)(high_32_copy >> 24); ! ! //Tack on the length. This is guaranteed to generate end up with ! //the last thing being done the compute plus the index being zero. ! // ! ESRG_MD5_Md5StateStructAddData(state, ! length_buf, ! 8); ! ! //Be absolutely sure we are rolled over to zero. ! assert((((int)state->bit_count) & 0x1FF) == 0); ! ! //Zero out the return state, just to be sure. ! memset(result, 0, sizeof(struct ESRG_MD5_Md5ResultStruct)); ! ! //Give caller the binary version. ! result->md5_words[0] = state->A; ! result->md5_words[1] = state->B; ! result->md5_words[2] = state->C; ! result->md5_words[3] = state->D; ! ! //Convert to string for caller. ! CHARFUNC_int_to_lc_hex_rev(state->A, result->md5_chars + 0); ! CHARFUNC_int_to_lc_hex_rev(state->B, result->md5_chars + 8); ! CHARFUNC_int_to_lc_hex_rev(state->C, result->md5_chars + 16); ! CHARFUNC_int_to_lc_hex_rev(state->D, result->md5_chars + 24); ! ! //Because of the way the CHARFUNC_int_to_lc_hex_rev() function ! //works, it produces the mirror image of the sequence of nibbles. ! //This is not quite what we want. What we want (least significant ! //byte first, but within each byte most significant nibble first) ! //from each integer is this: ! // ! // n1 n0 n3 n2 n5 n4 n7 n6 ! // ! //but what we get from that function is this: ! // ! // n0 n1 n2 n3 n4 n5 n6 n6, ! // ! //so we have to swap nibbles in each byte. ! // ! { ! int i; ! char temp; ! ! for (i=0; i<16; i++) ! { ! temp = result->md5_chars[i*2]; ! result->md5_chars[i*2] = result->md5_chars[i*2+1]; ! result->md5_chars[i*2+1] = temp; ! } ! } ! ! result->md5_chars[32] = 0; //Terminator. ! ! //Destroy the state, which may contain sensitive information. ! //This idea came from Rivest's sample code. ! memset(state, 0, sizeof(struct ESRG_MD5_Md5StateStruct)); ! ! #endif ! ! unsigned __int64 msglen; ! //Used to hold message length before we pad the message. ! unsigned char c01 = 0x80; ! //Used to append the "1" per FIPS 180-3. ! unsigned char c00 = 0x00; ! //Used to add 0's per FIPS 180-3. ! unsigned char length_buf[16]; ! //Buffer used to form the message length and append it to the message per FIPS 180-3. ! ! //Be sure the input pointers aren't obviously invalid. ! assert(state != NULL); ! assert(result != NULL); ! ! //Snapshot the message length. We'll be changing it when we pad the message. ! msglen = state->bit_count; ! ! //Add the required "1" to the end of the message, per FIPS 180-3. Because ! //this software module only allows the addition of bytes (not bits), adding the ! //"1" will always involve adding the byte 0x80. ! ESRG_SHA512_Sha512StateStructAddData(state, &c01, 1); ! ! //Add enough 0's to the message so that we have exactly room for 16 bytes (128 bits) ! //of length information at the end of the message. ! while ((state->bit_count & 0x3FF) != 896) ! ESRG_SHA512_Sha512StateStructAddData(state, &c00, 1); ! ! //Calculate the length as a series of bytes. ! length_buf[15] = 0; ! length_buf[14] = 0; ! length_buf[13] = 0; ! length_buf[12] = 0; ! length_buf[11] = 0; ! length_buf[10] = 0; ! length_buf[ 9] = 0; ! length_buf[ 8] = 0; ! length_buf[ 7] = (unsigned char)((msglen >> 56) & 0xFF); ! length_buf[ 6] = (unsigned char)((msglen >> 48) & 0xFF);; ! length_buf[ 5] = (unsigned char)((msglen >> 40) & 0xFF);; ! length_buf[ 4] = (unsigned char)((msglen >> 32) & 0xFF);; ! length_buf[ 3] = (unsigned char)((msglen >> 24) & 0xFF);; ! length_buf[ 2] = (unsigned char)((msglen >> 16) & 0xFF);; ! length_buf[ 1] = (unsigned char)((msglen >> 8) & 0xFF);; ! length_buf[ 0] = (unsigned char)((msglen) & 0xFF);; ! ! //Add the length to the message. This should work out to generate the ! //final manipulation round. ! ESRG_SHA512_Sha512StateStructAddData(state, length_buf, 16); ! ! //Form a string from the hash vector. ! ESRG_SHA512_CopyWordsToStringBuffer(state, result->sha512_chars); ! ! ! //Destroy the state, which may contain sensitive information. ! //This idea came from Rivest's sample code. ! memset(state, 0, sizeof(struct ESRG_SHA512_Sha512StateStruct)); } *************** *** 305,308 **** --- 559,565 ---- /****************************************************************************** ** $Log$ + ** Revision 1.3 2009/11/28 18:17:03 dtashley + ** Development edits. + ** ** Revision 1.2 2009/11/28 06:56:28 dtashley ** Edits. *************** *** 310,314 **** ** Revision 1.1 2009/11/28 00:09:15 dtashley ** Initial checkin. - ** ******************************************************************************* ** End of ESRG_SHA512.C. */ --- 567,570 ---- |
|
From: David T. A. <dta...@us...> - 2009-11-28 06:56:37
|
Update of /cvsroot/esrg/sfesrg/esrgpcpj/shared/c_datd In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv3998/c_datd Modified Files: esrg_sha512.c esrg_sha512.h Log Message: Edits. Index: esrg_sha512.h =================================================================== RCS file: /cvsroot/esrg/sfesrg/esrgpcpj/shared/c_datd/esrg_sha512.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** esrg_sha512.h 28 Nov 2009 00:09:15 -0000 1.1 --- esrg_sha512.h 28 Nov 2009 06:56:28 -0000 1.2 *************** *** 15,19 **** struct ESRG_SHA512_Sha512StateStruct { ! int placeholder; }; --- 15,37 ---- struct ESRG_SHA512_Sha512StateStruct { ! unsigned __int64 H0, H1, H2, H3, H4, H5, H6, H7; ! //Directly from FIPS 180-3. ! unsigned __int64 bit_count; ! //The count of bits processed thus far. The algorithm here ! //works in bytes, not bits, so this is advanced by 8 on ! //each byte processed. FIPS 180-3 calls for processing ! //messages up to length 2^128, but for obvious reasons ! //we don't do that. ! unsigned __int64 M[16]; ! //These are the words corresponding to the chars. We don't ! //dare union them because of big-endian/little-endian concerns. ! //The "M" nomenclature is from FIPS 180-3. ! unsigned char buf[128]; ! //We can't proceed to execute a round unless we have the ! //full 1024 bits = 16 words = 128 bytes of data. We must ! //buffer it because we can't count on being called with data ! //blocks that are a multiple of 128. We may have data hanging ! //around between calls. We fill up this buffer from the low ! //end, i.e. [0], then [1], then [2], etc. }; *************** *** 55,58 **** --- 73,79 ---- /*************************************************************************** ** $Log$ + ** Revision 1.2 2009/11/28 06:56:28 dtashley + ** Edits. + ** ** Revision 1.1 2009/11/28 00:09:15 dtashley ** Initial checkin. Index: esrg_sha512.c =================================================================== RCS file: /cvsroot/esrg/sfesrg/esrgpcpj/shared/c_datd/esrg_sha512.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** esrg_sha512.c 28 Nov 2009 00:09:15 -0000 1.1 --- esrg_sha512.c 28 Nov 2009 06:56:28 -0000 1.2 *************** *** 14,20 **** --- 14,95 ---- #include "esrg_sha512.h" + //This is a right rotation macro for efficiency. This + //macro rotates a 64-bit quantity x right (cyclically) by + //n bits. Nomenclature from FIPS 180-3. + #define ESRG_SHA512_FUNC_ROTR(x, n) (((x) >> (n)) | ((x) << (64-(n)))) + + //This is a right shift macro for efficiency. This + //macro shifts a 64-bit quantity x right by + //n bits. Nomenclature from FIPS 180-3. + #define ESRG_SHA512_FUNC_SHR(x, n) ((x) >> (n)) + + //These functions come directly from FIPS 180-3. + #define ESRG_SHA512_FUNC_CH(x, y, z) (((x) & (y)) ^ (~(x) & (z))) + #define ESRG_SHA512_FUNC_MAJ(x, y, z) (((x) & (y)) ^ ((x) & (z)) ^ ((y) & (z))) + #define ESRG_SHA512_FUNC_SIGMABIG_0(x) (ESRG_SHA512_FUNC_ROTR(x, 28) ^ ESRG_SHA512_FUNC_ROTR(x, 34) ^ ESRG_SHA512_FUNC_ROTR(x, 39)) + #define ESRG_SHA512_FUNC_SIGMABIG_1(x) (ESRG_SHA512_FUNC_ROTR(x, 14) ^ ESRG_SHA512_FUNC_ROTR(x, 18) ^ ESRG_SHA512_FUNC_ROTR(x, 41)) + #define ESRG_SHA512_FUNC_SIGMASMALL_0(x) (ESRG_SHA512_FUNC_ROTR(x, 1) ^ ESRG_SHA512_FUNC_ROTR(x, 8) ^ ESRG_SHA512_FUNC_SHR(x, 7)) + #define ESRG_SHA512_FUNC_SIGMASMALL_1(x) (ESRG_SHA512_FUNC_ROTR(x, 19) ^ ESRG_SHA512_FUNC_ROTR(x, 61) ^ ESRG_SHA512_FUNC_SHR(x, 6)) + + //Constants, from FIPS 180-3. + const unsigned __int64 ESRG_SHA512_K[80] = + {0x428a2f98d728ae22UL, 0x7137449123ef65cdUL, + 0xb5c0fbcfec4d3b2fUL, 0xe9b5dba58189dbbcUL, + 0x3956c25bf348b538UL, 0x59f111f1b605d019UL, + 0x923f82a4af194f9bUL, 0xab1c5ed5da6d8118UL, + 0xd807aa98a3030242UL, 0x12835b0145706fbeUL, + 0x243185be4ee4b28cUL, 0x550c7dc3d5ffb4e2UL, + 0x72be5d74f27b896fUL, 0x80deb1fe3b1696b1UL, + 0x9bdc06a725c71235UL, 0xc19bf174cf692694UL, + 0xe49b69c19ef14ad2UL, 0xefbe4786384f25e3UL, + 0x0fc19dc68b8cd5b5UL, 0x240ca1cc77ac9c65UL, + 0x2de92c6f592b0275UL, 0x4a7484aa6ea6e483UL, + 0x5cb0a9dcbd41fbd4UL, 0x76f988da831153b5UL, + 0x983e5152ee66dfabUL, 0xa831c66d2db43210UL, + 0xb00327c898fb213fUL, 0xbf597fc7beef0ee4UL, + 0xc6e00bf33da88fc2UL, 0xd5a79147930aa725UL, + 0x06ca6351e003826fUL, 0x142929670a0e6e70UL, + 0x27b70a8546d22ffcUL, 0x2e1b21385c26c926UL, + 0x4d2c6dfc5ac42aedUL, 0x53380d139d95b3dfUL, + 0x650a73548baf63deUL, 0x766a0abb3c77b2a8UL, + 0x81c2c92e47edaee6UL, 0x92722c851482353bUL, + 0xa2bfe8a14cf10364UL, 0xa81a664bbc423001UL, + 0xc24b8b70d0f89791UL, 0xc76c51a30654be30UL, + 0xd192e819d6ef5218UL, 0xd69906245565a910UL, + 0xf40e35855771202aUL, 0x106aa07032bbd1b8UL, + 0x19a4c116b8d2d0c8UL, 0x1e376c085141ab53UL, + 0x2748774cdf8eeb99UL, 0x34b0bcb5e19b48a8UL, + 0x391c0cb3c5c95a63UL, 0x4ed8aa4ae3418acbUL, + 0x5b9cca4f7763e373UL, 0x682e6ff3d6b2b8a3UL, + 0x748f82ee5defb2fcUL, 0x78a5636f43172f60UL, + 0x84c87814a1f0ab72UL, 0x8cc702081a6439ecUL, + 0x90befffa23631e28UL, 0xa4506cebde82bde9UL, + 0xbef9a3f7b2c67915UL, 0xc67178f2e372532bUL, + 0xca273eceea26619cUL, 0xd186b8c721c0c207UL, + 0xeada7dd6cde0eb1eUL, 0xf57d4f7fee6ed178UL, + 0x06f067aa72176fbaUL, 0x0a637dc5a2c898a6UL, + 0x113f9804bef90daeUL, 0x1b710b35131c471bUL, + 0x28db77f523047d84UL, 0x32caab7b40c72493UL, + 0x3c9ebe0a15c9bebcUL, 0x431d67c49c100d4cUL, + 0x4cc5d4becb3e42b6UL, 0x597f299cfc657e2aUL, + 0x5fcb6fab3ad6faecUL, 0x6c44198c4a475817UL}; + void ESRG_SHA512_Sha512StateStructOpen(struct ESRG_SHA512_Sha512StateStruct *arg) { + assert(arg != NULL); + + memset(arg, 0, sizeof(struct ESRG_SHA512_Sha512StateStruct)); + //Everything to zero, processed bitcount automatically set to zero. + + //This assignment comes directly from FIPS 180-3. + arg->H0 = 0x6a09e667f3bcc908UL; + arg->H1 = 0xbb67ae8584caa73bUL; + arg->H2 = 0x3c6ef372fe94f82bUL; + arg->H3 = 0xa54ff53a5f1d36f1UL; + arg->H4 = 0x510e527fade682d1UL; + arg->H5 = 0x9b05688c2b3e6c1fUL; + arg->H6 = 0x1f83d9abfb41bd6bUL; + arg->H7 = 0x5be0cd19137e2179UL; } *************** *** 25,28 **** --- 100,128 ---- static void ESRG_SHA512_CopyBytesToWords(struct ESRG_SHA512_Sha512StateStruct *arg) { + unsigned int i; + + assert(arg != NULL); + + //Copy the buffer contents into the words. We need to be careful + //to do this correctly, because of big-endian/little-endian concerns. + for (i=0; i<16; i++) + { + assert((i * 8 + 3) < 128); + arg->M[i] = (((unsigned __int64)(arg->buf[i*8+7])) << 56) + + + (((unsigned __int64)(arg->buf[i*8+6])) << 48) + + + (((unsigned __int64)(arg->buf[i*8+5])) << 40) + + + (((unsigned __int64)(arg->buf[i*8+4])) << 32) + + + (((unsigned __int64)(arg->buf[i*8+3])) << 24) + + + (((unsigned __int64)(arg->buf[i*8+2])) << 16) + + + (((unsigned __int64)(arg->buf[i*8+1])) << 8) + + + (((unsigned __int64)(arg->buf[i*8]))); + } } *************** *** 32,35 **** --- 132,268 ---- static void ESRG_SHA512_DoSha512Rounds(struct ESRG_SHA512_Sha512StateStruct *arg) { + int i; + //Iteration variable. + unsigned __int64 T1, T2; + //Temporary variables. Nomenclature is from FIPS 180-3. + unsigned __int64 M[16]; + //Buffer of message block to avoid repeated dereferences. + unsigned __int64 H[8]; + //Buffer of hash state to avoid repeated dereferences. + unsigned __int64 W[80]; + //Working variable. Nomenclature directly from FIPS 180-3. + unsigned __int64 a, b, c, d, e, f, g, h; + //Nomenclature above directly from FIPS 180-3. + + assert(arg != NULL); + + //Copy bytes into words. + ESRG_SHA512_CopyBytesToWords(arg); + + //Copy out the message buffer for speed. This should avoid repeated + //dereferences. + M[ 0] = arg->M[ 0]; + M[ 1] = arg->M[ 1]; + M[ 2] = arg->M[ 2]; + M[ 3] = arg->M[ 3]; + M[ 4] = arg->M[ 4]; + M[ 5] = arg->M[ 5]; + M[ 6] = arg->M[ 6]; + M[ 7] = arg->M[ 7]; + M[ 8] = arg->M[ 8]; + M[ 9] = arg->M[ 9]; + M[10] = arg->M[10]; + M[11] = arg->M[11]; + M[12] = arg->M[12]; + M[13] = arg->M[13]; + M[14] = arg->M[14]; + M[15] = arg->M[15]; + + //Copy out the hash state for speed. This should avoid repeated dereferences. + H[0] = arg->H0; + H[1] = arg->H1; + H[2] = arg->H2; + H[3] = arg->H3; + H[4] = arg->H4; + H[5] = arg->H5; + H[6] = arg->H6; + H[7] = arg->H7; + + //Prepare the message schedule. The nomenclature comes directly from FIPS 180-3. + W[ 0] = M[ 0]; + W[ 1] = M[ 1]; + W[ 2] = M[ 2]; + W[ 3] = M[ 3]; + W[ 4] = M[ 4]; + W[ 5] = M[ 5]; + W[ 6] = M[ 6]; + W[ 7] = M[ 7]; + W[ 8] = M[ 8]; + W[ 9] = M[ 9]; + W[10] = M[10]; + W[11] = M[11]; + W[12] = M[12]; + W[13] = M[13]; + W[14] = M[14]; + W[15] = M[15]; + + for (i=16; i<80; i++) + { + W[i] = ESRG_SHA512_FUNC_SIGMASMALL_1(W[i-2]) + + W[i-7] + + ESRG_SHA512_FUNC_SIGMASMALL_0(W[i-15]) + + W[i-16]; + } + + //Initialize the 8 working variables as specified in FIPS 180-3. + a = H[0]; + b = H[1]; + c = H[2]; + d = H[3]; + e = H[4]; + f = H[5]; + g = H[6]; + h = H[7]; + + //Perform the rounds as specified in FIPS 180-3. Nomenclature below comes from + //FIPS 180-3. + for (i=0; i<80; i++) + { + T1 = h + + ESRG_SHA512_FUNC_SIGMABIG_1(e) + + ESRG_SHA512_FUNC_CH(e, f, g) + + ESRG_SHA512_K[i] + + W[i]; + // + T2 = ESRG_SHA512_FUNC_SIGMABIG_1(a) + + ESRG_SHA512_FUNC_MAJ(a, b, c); + // + h = g; + // + g = f; + // + f = e; + // + e = d + T1; + // + d = c; + // + c = b; + // + b = a; + // + a = T1 + T2; + } + + //Compute the next hash value. The nomenclature comes from FIPS 180-3. + H[0] = a + H[0]; + H[1] = b + H[1]; + H[2] = c + H[2]; + H[3] = d + H[3]; + H[4] = e + H[4]; + H[5] = f + H[5]; + H[6] = g + H[6]; + H[7] = h + H[7]; + + //Place the local variables back in the structure. This the only state that + //gets preserved between the operation of doing the rounds. + arg->H0 = H[0]; + arg->H1 = H[1]; + arg->H2 = H[2]; + arg->H3 = H[3]; + arg->H4 = H[4]; + arg->H5 = H[5]; + arg->H6 = H[6]; + arg->H7 = H[7]; } *************** *** 49,52 **** --- 282,287 ---- for (i=0; i<128; i++) result->sha512_chars[i] = 'X'; + + result->sha512_chars[128] = 0; } *************** *** 70,73 **** --- 305,311 ---- /****************************************************************************** ** $Log$ + ** Revision 1.2 2009/11/28 06:56:28 dtashley + ** Edits. + ** ** Revision 1.1 2009/11/28 00:09:15 dtashley ** Initial checkin. |
|
From: David T. A. <dta...@us...> - 2009-11-28 02:00:17
|
Update of /cvsroot/esrg/sfesrg/esrgpcpj/gfsw In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv16234 Modified Files: gfsw.c Log Message: SHA-512 function calls added. Index: gfsw.c =================================================================== RCS file: /cvsroot/esrg/sfesrg/esrgpcpj/gfsw/gfsw.c,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** gfsw.c 28 Nov 2009 00:09:41 -0000 1.27 --- gfsw.c 28 Nov 2009 02:00:09 -0000 1.28 *************** *** 89,93 **** //is actually dead. ! static char GFSW_szAppName[] = "GFSW"; //The application name. --- 89,93 ---- //is actually dead. ! static char GFSW_szAppName[] = "FileHash"; //The application name. *************** *** 144,156 **** volatile unsigned __int64 file_size; //The number of bytes in the file. ! volatile int crc32_valid; //TRUE if the CRC32 has been assigned, or an attempt was made to assign it. This //means the child has filled in the string. volatile char crc32[100]; //A string representation of the CRC-32, or else an error message from the child. ! volatile int md5_valid; //TRUE if the md5 is valid or an attempt was made. volatile char md5[100]; //A string representation of the MD5 or else an error message from the child. }; --- 144,160 ---- volatile unsigned __int64 file_size; //The number of bytes in the file. ! volatile int crc32_valid; //TRUE if the CRC32 has been assigned, or an attempt was made to assign it. This //means the child has filled in the string. volatile char crc32[100]; //A string representation of the CRC-32, or else an error message from the child. ! volatile int md5_valid; //TRUE if the md5 is valid or an attempt was made. volatile char md5[100]; //A string representation of the MD5 or else an error message from the child. + volatile int sha512_valid; + //TRUE if the SHA512 is valid or an attempt was made. + volatile char sha512[200]; + //A string representation of the SHA512 or else an error message from the child. }; *************** *** 377,381 **** int len; int i; ! char buf[2*MAX_PATH+100]; //Count the number of files queued, and put that in the buffer. --- 381,385 ---- int len; int i; ! char buf[2*MAX_PATH+200]; //Count the number of files queued, and put that in the buffer. *************** *** 490,495 **** } } - } } else --- 494,510 ---- } } + //Now, the SHA512. + if (GFSW_file_info.file_info[i].sha512_valid) + { + sprintf_s(buf, sizeof(buf), "\tSHA-512:\t%s\x0d\x0a", GFSW_file_info.file_info[i].sha512); + len = strlen(buf); + if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) + { + strcpy_s(GFSW_dispbuf+dispbufidx, sizeof(GFSW_dispbuf)-dispbufidx, buf); + dispbufidx += len; + } + } + } } else *************** *** 912,915 **** --- 927,932 ---- struct ESRG_MD5_Md5StateStruct md5s; struct ESRG_MD5_Md5ResultStruct md5r; + struct ESRG_SHA512_Sha512StateStruct sha512s; + struct ESRG_SHA512_Sha512ResultStruct sha512r; int exit_flag = 0; DWORD bytes_read = 0; *************** *** 1039,1043 **** /********************************************************************************/ /********************************************************************************/ ! /******* F I L E C R C - 3 2 A N D M D - 5 ***************************/ /********************************************************************************/ /********************************************************************************/ --- 1056,1060 ---- /********************************************************************************/ /********************************************************************************/ ! /******* F I L E C R C - 3 2, M D - 5, A N D S H A - 5 1 2 *******/ /********************************************************************************/ /********************************************************************************/ *************** *** 1045,1057 **** { //File handle signals an error condition. We cannot ! //even read the file for CRC-32 and MD5. Just set info //and boogie. ! strcpy_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "INVALID FILE HANDLE"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), "INVALID FILE HANDLE"); } else { //This is the meat of the matter where we read the file contents and do ! //the CRC-32 calculations. The assumption made is the the buffer size //will be somewhere in the range of 16K-1M, so that the time to process //that much data is fairly small. This should be enough granularity --- 1062,1075 ---- { //File handle signals an error condition. We cannot ! //even read the file for CRC-32, MD-5, and SHA-512. Just set info //and boogie. ! strcpy_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "INVALID FILE HANDLE"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), "INVALID FILE HANDLE"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].sha512, sizeof(GFSW_file_info.file_info[fidx].sha512), "INVALID FILE HANDLE"); } else { //This is the meat of the matter where we read the file contents and do ! //the hash calculations. The assumption made is the the buffer size //will be somewhere in the range of 16K-1M, so that the time to process //that much data is fairly small. This should be enough granularity *************** *** 1062,1067 **** if (rc == 0xFFFFFFFF) { ! strcpy_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "FILE SEEK ERROR"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), "FILE SEEK ERROR"); goto file_read_loop_endpoint; } --- 1080,1086 ---- if (rc == 0xFFFFFFFF) { ! strcpy_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "FILE SEEK ERROR"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), "FILE SEEK ERROR"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].sha512, sizeof(GFSW_file_info.file_info[fidx].sha512), "FILE SEEK ERROR"); goto file_read_loop_endpoint; } *************** *** 1070,1073 **** --- 1089,1093 ---- CRCHASHFUNCS_Crc32StateStructOpen(&crc32s); ESRG_MD5_Md5StateStructOpen(&md5s); + ESRG_SHA512_Sha512StateStructOpen(&sha512s); //Iterate through, reading the file and processing the blocks. In the case *************** *** 1082,1087 **** if (bytes_read) { ! CRCHASHFUNCS_Crc32StateStructAddData(&crc32s, GFSW_file_read_buf, bytes_read); ! ESRG_MD5_Md5StateStructAddData(&md5s, GFSW_file_read_buf, bytes_read); } --- 1102,1108 ---- if (bytes_read) { ! CRCHASHFUNCS_Crc32StateStructAddData(&crc32s, GFSW_file_read_buf, bytes_read); ! ESRG_MD5_Md5StateStructAddData (&md5s, GFSW_file_read_buf, bytes_read); ! ESRG_SHA512_Sha512StateStructAddData(&sha512s, GFSW_file_read_buf, bytes_read); } *************** *** 1089,1094 **** if (!rv) { ! strcpy_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "FILE READ ERROR"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), "FILE READ ERROR"); goto file_read_loop_endpoint; } --- 1110,1116 ---- if (!rv) { ! strcpy_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "FILE READ ERROR"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), "FILE READ ERROR"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].sha512, sizeof(GFSW_file_info.file_info[fidx].sha512), "FILE READ ERROR"); goto file_read_loop_endpoint; } *************** *** 1101,1106 **** else if (GFSW_thread_abort_request) { ! strcpy_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "OPERATION ABORTED"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), "OPERATION ABORTED"); goto file_read_loop_endpoint; } --- 1123,1129 ---- else if (GFSW_thread_abort_request) { ! strcpy_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "OPERATION ABORTED"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), "OPERATION ABORTED"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].sha512, sizeof(GFSW_file_info.file_info[fidx].sha512), "OPERATION ABORTED"); goto file_read_loop_endpoint; } *************** *** 1116,1124 **** ESRG_MD5_Md5StateStructClose(&md5s, &md5r); //Form up a CRC-32 string. sprintf_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "%8.8X", crc32); //Form up an MD-5 string. ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), md5r.md5_chars); //Report progress to parent thread. --- 1139,1153 ---- ESRG_MD5_Md5StateStructClose(&md5s, &md5r); + //Close up the SHA-512 structure. + ESRG_SHA512_Sha512StateStructClose(&sha512s, &sha512r); + //Form up a CRC-32 string. sprintf_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "%8.8X", crc32); //Form up an MD-5 string. ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), md5r.md5_chars); ! ! //Form up an SHA-512 string. ! strcpy_s((char *)GFSW_file_info.file_info[fidx].sha512, sizeof(GFSW_file_info.file_info[fidx].sha512), sha512r.sha512_chars); //Report progress to parent thread. *************** *** 1135,1140 **** //In any case both CRC32 and MD5 info filled in. ! GFSW_file_info.file_info[fidx].crc32_valid = 1; ! GFSW_file_info.file_info[fidx].md5_valid = 1; //If the file handle is valid (i.e. we opened the file) we must --- 1164,1170 ---- //In any case both CRC32 and MD5 info filled in. ! GFSW_file_info.file_info[fidx].crc32_valid = 1; ! GFSW_file_info.file_info[fidx].md5_valid = 1; ! GFSW_file_info.file_info[fidx].sha512_valid = 1; //If the file handle is valid (i.e. we opened the file) we must *************** *** 1148,1153 **** if (!close_result) { ! strcpy_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "FILE HANDLE CLOSE ERROR"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), "FILE HANDLE CLOSE ERROR"); } } --- 1178,1184 ---- if (!close_result) { ! strcpy_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "FILE HANDLE CLOSE ERROR"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), "FILE HANDLE CLOSE ERROR"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].sha512, sizeof(GFSW_file_info.file_info[fidx].sha512), "FILE HANDLE CLOSE ERROR"); } } *************** *** 1251,1254 **** --- 1282,1288 ---- /****************************************************************************** ** $Log$ + ** Revision 1.28 2009/11/28 02:00:09 dtashley + ** SHA-512 function calls added. + ** ** Revision 1.27 2009/11/28 00:09:41 dtashley ** Addition of SHA512 module. |
|
From: David T. A. <dta...@us...> - 2009-11-28 00:19:41
|
Update of /cvsroot/esrg/sfesrg/esrgpcpj/gfsw In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9285 Modified Files: gfsw.sln Log Message: Edits. Index: gfsw.sln =================================================================== RCS file: /cvsroot/esrg/sfesrg/esrgpcpj/gfsw/gfsw.sln,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** gfsw.sln 27 Nov 2009 20:48:48 -0000 1.1 --- gfsw.sln 28 Nov 2009 00:16:30 -0000 1.2 *************** *** 2,6 **** Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 ! Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gfsw", "gfsw.vcproj", "{8036E480-91C0-49C5-B40C-CA33346A3694}" EndProject Global --- 2,6 ---- Microsoft Visual Studio Solution File, Format Version 9.00 # Visual Studio 2005 ! Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gfsw", "gfsw.vcproj", "{DD4EB5C9-833A-4F23-AB99-1C98B30D5FA4}" EndProject Global *************** *** 10,17 **** EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution ! {8036E480-91C0-49C5-B40C-CA33346A3694}.Debug|Win32.ActiveCfg = Debug|Win32 ! {8036E480-91C0-49C5-B40C-CA33346A3694}.Debug|Win32.Build.0 = Debug|Win32 ! {8036E480-91C0-49C5-B40C-CA33346A3694}.Release|Win32.ActiveCfg = Release|Win32 ! {8036E480-91C0-49C5-B40C-CA33346A3694}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution --- 10,17 ---- EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution ! {DD4EB5C9-833A-4F23-AB99-1C98B30D5FA4}.Debug|Win32.ActiveCfg = Debug|Win32 ! {DD4EB5C9-833A-4F23-AB99-1C98B30D5FA4}.Debug|Win32.Build.0 = Debug|Win32 ! {DD4EB5C9-833A-4F23-AB99-1C98B30D5FA4}.Release|Win32.ActiveCfg = Release|Win32 ! {DD4EB5C9-833A-4F23-AB99-1C98B30D5FA4}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution |
|
From: David T. A. <dta...@us...> - 2009-11-28 00:19:39
|
Update of /cvsroot/esrg/sfesrg/esrgpcpj/gfsw In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv9272 Added Files: gfsw.vcproj Log Message: Initial checkin. --- NEW FILE: gfsw.vcproj --- <?xml version="1.0" encoding="Windows-1252"?> <VisualStudioProject ProjectType="Visual C++" Version="8.00" Name="gfsw" ProjectGUID="{DD4EB5C9-833A-4F23-AB99-1C98B30D5FA4}" > <Platforms> <Platform Name="Win32" /> </Platforms> <ToolFiles> </ToolFiles> <Configurations> <Configuration Name="Debug|Win32" OutputDirectory=".\Debug" IntermediateDirectory=".\Debug" ConfigurationType="1" InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" > <Tool Name="VCPreBuildEventTool" /> <Tool Name="VCCustomBuildTool" /> <Tool Name="VCXMLDataGeneratorTool" /> <Tool Name="VCWebServiceProxyGeneratorTool" /> <Tool Name="VCMIDLTool" PreprocessorDefinitions="_DEBUG" MkTypLibCompatible="true" SuppressStartupBanner="true" TargetEnvironment="1" TypeLibraryName=".\Debug/gfsw.tlb" HeaderFileName="" /> <Tool Name="VCCLCompilerTool" Optimization="0" AdditionalIncludeDirectories="..\shared\tclxtens,..\shared\c_datd,..\shared\c_cmode" PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_WIN32_WINNT=0x0400" MinimalRebuild="true" BasicRuntimeChecks="3" RuntimeLibrary="1" PrecompiledHeaderFile=".\Debug/gfsw.pch" AssemblerListingLocation=".\Debug/" ObjectFile=".\Debug/" ProgramDataBaseFileName=".\Debug/" BrowseInformation="1" WarningLevel="3" SuppressStartupBanner="true" DebugInformationFormat="4" /> <Tool Name="VCManagedResourceCompilerTool" /> <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="_DEBUG" Culture="1033" /> <Tool Name="VCPreLinkEventTool" /> <Tool Name="VCLinkerTool" OutputFile=".\Debug/gfsw.exe" LinkIncremental="2" SuppressStartupBanner="true" GenerateDebugInformation="true" ProgramDatabaseFile=".\Debug/gfsw.pdb" SubSystem="2" TargetMachine="1" /> <Tool Name="VCALinkTool" /> <Tool Name="VCManifestTool" /> <Tool Name="VCXDCMakeTool" /> <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" OutputFile=".\Debug/gfsw.bsc" /> <Tool Name="VCFxCopTool" /> <Tool Name="VCAppVerifierTool" /> <Tool Name="VCWebDeploymentTool" /> <Tool Name="VCPostBuildEventTool" /> </Configuration> <Configuration Name="Release|Win32" OutputDirectory=".\Release" IntermediateDirectory=".\Release" ConfigurationType="1" InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops" UseOfMFC="0" ATLMinimizesCRunTimeLibraryUsage="false" CharacterSet="2" > <Tool Name="VCPreBuildEventTool" /> <Tool Name="VCCustomBuildTool" /> <Tool Name="VCXMLDataGeneratorTool" /> <Tool Name="VCWebServiceProxyGeneratorTool" /> <Tool Name="VCMIDLTool" PreprocessorDefinitions="NDEBUG" MkTypLibCompatible="true" SuppressStartupBanner="true" TargetEnvironment="1" TypeLibraryName=".\Release/gfsw.tlb" HeaderFileName="" /> <Tool Name="VCCLCompilerTool" Optimization="2" InlineFunctionExpansion="1" AdditionalIncludeDirectories="..\shared\tclxtens,..\shared\c_datd,..\shared\c_cmode" PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_WIN32_WINNT=0x0400" StringPooling="true" RuntimeLibrary="0" EnableFunctionLevelLinking="true" PrecompiledHeaderFile=".\Release/gfsw.pch" AssemblerListingLocation=".\Release/" ObjectFile=".\Release/" ProgramDataBaseFileName=".\Release/" WarningLevel="3" SuppressStartupBanner="true" /> <Tool Name="VCManagedResourceCompilerTool" /> <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="NDEBUG" Culture="1033" /> <Tool Name="VCPreLinkEventTool" /> <Tool Name="VCLinkerTool" OutputFile=".\Release/gfsw.exe" LinkIncremental="1" SuppressStartupBanner="true" ProgramDatabaseFile=".\Release/gfsw.pdb" SubSystem="2" TargetMachine="1" /> <Tool Name="VCALinkTool" /> <Tool Name="VCManifestTool" /> <Tool Name="VCXDCMakeTool" /> <Tool Name="VCBscMakeTool" SuppressStartupBanner="true" OutputFile=".\Release/gfsw.bsc" /> <Tool Name="VCFxCopTool" /> <Tool Name="VCAppVerifierTool" /> <Tool Name="VCWebDeploymentTool" /> <Tool Name="VCPostBuildEventTool" /> </Configuration> </Configurations> <References> </References> <Files> <Filter Name="Source Files" Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" > <File RelativePath="..\shared\c_datd\bstrfunc.c" > <FileConfiguration Name="Debug|Win32" > <Tool Name="VCCLCompilerTool" AdditionalIncludeDirectories="" PreprocessorDefinitions="" /> </FileConfiguration> <FileConfiguration Name="Release|Win32" > <Tool Name="VCCLCompilerTool" AdditionalIncludeDirectories="" PreprocessorDefinitions="" /> </FileConfiguration> </File> <File RelativePath="..\shared\tclxtens\build_config.c" > <FileConfiguration Name="Debug|Win32" > <Tool Name="VCCLCompilerTool" AdditionalIncludeDirectories="" PreprocessorDefinitions="" /> </FileConfiguration> <FileConfiguration Name="Release|Win32" > <Tool Name="VCCLCompilerTool" AdditionalIncludeDirectories="" PreprocessorDefinitions="" /> </FileConfiguration> </File> <File RelativePath="..\shared\c_datd\charfunc.c" > <FileConfiguration Name="Debug|Win32" > <Tool Name="VCCLCompilerTool" AdditionalIncludeDirectories="" PreprocessorDefinitions="" /> </FileConfiguration> <FileConfiguration Name="Release|Win32" > <Tool Name="VCCLCompilerTool" AdditionalIncludeDirectories="" PreprocessorDefinitions="" /> </FileConfiguration> </File> <File RelativePath="..\shared\c_datd\crchashfuncs.c" > <FileConfiguration Name="Debug|Win32" > <Tool Name="VCCLCompilerTool" AdditionalIncludeDirectories="" PreprocessorDefinitions="" /> </FileConfiguration> <FileConfiguration Name="Release|Win32" > <Tool Name="VCCLCompilerTool" AdditionalIncludeDirectories="" PreprocessorDefinitions="" /> </FileConfiguration> </File> <File RelativePath="..\shared\c_datd\esrg_md5.c" > <FileConfiguration Name="Debug|Win32" > <Tool Name="VCCLCompilerTool" AdditionalIncludeDirectories="" PreprocessorDefinitions="" /> </FileConfiguration> <FileConfiguration Name="Release|Win32" > <Tool Name="VCCLCompilerTool" AdditionalIncludeDirectories="" PreprocessorDefinitions="" /> </FileConfiguration> </File> <File RelativePath="..\shared\c_datd\esrg_sha512.c" > </File> <File RelativePath="gfsw.c" > <FileConfiguration Name="Debug|Win32" > <Tool Name="VCCLCompilerTool" AdditionalIncludeDirectories="" PreprocessorDefinitions="" /> </FileConfiguration> <FileConfiguration Name="Release|Win32" > <Tool Name="VCCLCompilerTool" AdditionalIncludeDirectories="" PreprocessorDefinitions="" /> </FileConfiguration> </File> <File RelativePath="gfsw.rc" > <FileConfiguration Name="Debug|Win32" > <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="" /> </FileConfiguration> <FileConfiguration Name="Release|Win32" > <Tool Name="VCResourceCompilerTool" PreprocessorDefinitions="" /> </FileConfiguration> </File> </Filter> <Filter Name="Resource Files" Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" > <File RelativePath="gfswicon.ico" > </File> </Filter> <Filter Name="Header Files" Filter="h;hpp;hxx;hm;inl" > </Filter> </Files> <Globals> </Globals> </VisualStudioProject> |
|
From: David T. A. <dta...@us...> - 2009-11-28 00:09:55
|
Update of /cvsroot/esrg/sfesrg/esrgpcpj/gfsw In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv8441 Modified Files: gfsw.c Log Message: Addition of SHA512 module. Index: gfsw.c =================================================================== RCS file: /cvsroot/esrg/sfesrg/esrgpcpj/gfsw/gfsw.c,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** gfsw.c 27 Nov 2009 22:30:37 -0000 1.26 --- gfsw.c 28 Nov 2009 00:09:41 -0000 1.27 *************** *** 14,17 **** --- 14,18 ---- #include "crchashfuncs.h" #include "esrg_md5.h" + #include "esrg_sha512.h" /* *************** *** 1250,1253 **** --- 1251,1257 ---- /****************************************************************************** ** $Log$ + ** Revision 1.27 2009/11/28 00:09:41 dtashley + ** Addition of SHA512 module. + ** ** Revision 1.26 2009/11/27 22:30:37 dtashley ** Warnings from newer version of Visual Studio addressed. |
|
From: David T. A. <dta...@us...> - 2009-11-28 00:09:23
|
Update of /cvsroot/esrg/sfesrg/esrgpcpj/shared/c_datd In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv8419 Added Files: esrg_sha512.c esrg_sha512.h Log Message: Initial checkin. --- NEW FILE: esrg_sha512.h --- /* $Header: /cvsroot/esrg/sfesrg/esrgpcpj/shared/c_datd/esrg_sha512.h,v 1.1 2009/11/28 00:09:15 dtashley Exp $ */ #ifndef ESRG_SHA512_H_INCLUDED #define ESRG_SHA512_H_INCLUDED #ifdef MODULE_ESRG_SHA512 #define DECMOD_ESRG_SHA512 #else #define DECMOD_ESRG_SHA512 extern #endif //Fundamental state (or RFC 1321 calls it context) for forming //MD5s. Conceptually private to this module. struct ESRG_SHA512_Sha512StateStruct { int placeholder; }; //Result structure, used to hold result. Caller is allowed to //pick it apart. struct ESRG_SHA512_Sha512ResultStruct { unsigned sha512_words[4]; char sha512_chars[129]; //Zero terminated string containing MD5 formed. }; //Initializes the SHA512 calculation structure. DECMOD_ESRG_SHA512 void ESRG_SHA512_Sha512StateStructOpen(struct ESRG_SHA512_Sha512StateStruct *arg); //Adds data to it. Zero length is OK. DECMOD_ESRG_SHA512 void ESRG_SHA512_Sha512StateStructAddData(struct ESRG_SHA512_Sha512StateStruct *arg, void *data, unsigned len); //Closes the structure and returns the SHA512. This is destructive--one cannot //continue adding characters. All characters returned are lower-case. DECMOD_ESRG_SHA512 void ESRG_SHA512_Sha512StateStructClose(struct ESRG_SHA512_Sha512StateStruct *state, struct ESRG_SHA512_Sha512ResultStruct *result); //Returns version control information. DECMOD_ESRG_SHA512 const char *ESRG_SHA512_cvcinfo(void); DECMOD_ESRG_SHA512 const char *ESRG_SHA512_hvcinfo(void); //Definition of the version of the H file, used for providing version control //information to external callers. #define ESRG_SHA512_H_VERSION ("$Header: /cvsroot/esrg/sfesrg/esrgpcpj/shared/c_datd/esrg_sha512.h,v 1.1 2009/11/28 00:09:15 dtashley Exp $") #endif /*************************************************************************** ** $Log: esrg_sha512.h,v $ ** Revision 1.1 2009/11/28 00:09:15 dtashley ** Initial checkin. ** **************************************************************************** ** End of ESRG_SHA512.H. */ --- NEW FILE: esrg_sha512.c --- /* $Header: /cvsroot/esrg/sfesrg/esrgpcpj/shared/c_datd/esrg_sha512.c,v 1.1 2009/11/28 00:09:15 dtashley Exp $ ** ** A description of the functionality of this module and the public interface ** definition is contained in the associated .H file. */ #define MODULE_ESRG_SHA512 #include <assert.h> #include <stddef.h> #include <string.h> #include "charfunc.h" #include "esrg_sha512.h" void ESRG_SHA512_Sha512StateStructOpen(struct ESRG_SHA512_Sha512StateStruct *arg) { } //Copies the byte buffer to the word buffer within the state block. //This is done in a way which hides big-endian/little-endian concerns. static void ESRG_SHA512_CopyBytesToWords(struct ESRG_SHA512_Sha512StateStruct *arg) { } //Does the SHA-512 rounds as specified by FIPS 180-3. static void ESRG_SHA512_DoSha512Rounds(struct ESRG_SHA512_Sha512StateStruct *arg) { } void ESRG_SHA512_Sha512StateStructAddData(struct ESRG_SHA512_Sha512StateStruct *arg, void *pointer_in, unsigned len) { } void ESRG_SHA512_Sha512StateStructClose(struct ESRG_SHA512_Sha512StateStruct *state, struct ESRG_SHA512_Sha512ResultStruct *result) { unsigned i; for (i=0; i<128; i++) result->sha512_chars[i] = 'X'; } //Returns version control string for file. // const char *ESRG_SHA512_cvcinfo(void) { return ("$Header: /cvsroot/esrg/sfesrg/esrgpcpj/shared/c_datd/esrg_sha512.c,v 1.1 2009/11/28 00:09:15 dtashley Exp $"); } //Returns version control string for associated .H file. // const char *ESRG_SHA512_hvcinfo(void) { return (ESRG_SHA512_H_VERSION); } /****************************************************************************** ** $Log: esrg_sha512.c,v $ ** Revision 1.1 2009/11/28 00:09:15 dtashley ** Initial checkin. ** ******************************************************************************* ** End of ESRG_SHA512.C. */ |
|
From: David T. A. <dta...@us...> - 2009-11-27 22:30:50
|
Update of /cvsroot/esrg/sfesrg/esrgpcpj/gfsw In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv31242 Modified Files: gfsw.c Log Message: Warnings from newer version of Visual Studio addressed. Index: gfsw.c =================================================================== RCS file: /cvsroot/esrg/sfesrg/esrgpcpj/gfsw/gfsw.c,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** gfsw.c 24 Jun 2002 05:01:12 -0000 1.25 --- gfsw.c 27 Nov 2009 22:30:37 -0000 1.26 *************** *** 392,400 **** } } ! sprintf(buf, "Files to signature: %d.\x0d\x0a", nfiles); len = strlen(buf); if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy(GFSW_dispbuf+dispbufidx, buf); dispbufidx += len; } --- 392,400 ---- } } ! sprintf_s(buf, sizeof(buf), "Files to signature: %d.\x0d\x0a", nfiles); len = strlen(buf); if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy_s(GFSW_dispbuf+dispbufidx, sizeof(GFSW_dispbuf) - dispbufidx,buf); dispbufidx += len; } *************** *** 405,421 **** if ((GFSW_file_info.file_info[i].fpath[0]) && (GFSW_file_info.file_info[i].is_directory_valid)) { ! sprintf(buf, "--------------------\x0d\x0a"); len = strlen(buf); if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy(GFSW_dispbuf+dispbufidx, buf); dispbufidx += len; } ! sprintf(buf, "[%03d/%03d] %s\x0d\x0a", i+1, nfiles, GFSW_file_info.file_info[i].fpath); len = strlen(buf); if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy(GFSW_dispbuf+dispbufidx, buf); dispbufidx += len; } --- 405,421 ---- if ((GFSW_file_info.file_info[i].fpath[0]) && (GFSW_file_info.file_info[i].is_directory_valid)) { ! sprintf_s(buf, sizeof(buf), "--------------------\x0d\x0a"); len = strlen(buf); if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy_s(GFSW_dispbuf+dispbufidx, sizeof(GFSW_dispbuf)-dispbufidx, buf); dispbufidx += len; } ! sprintf_s(buf, sizeof(buf), "[%03d/%03d] %s\x0d\x0a", i+1, nfiles, GFSW_file_info.file_info[i].fpath); len = strlen(buf); if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy_s(GFSW_dispbuf+dispbufidx, sizeof(GFSW_dispbuf)-dispbufidx, buf); dispbufidx += len; } *************** *** 425,433 **** if (GFSW_file_info.file_info[i].is_directory_error) { ! sprintf(buf, "\tError obtaining file attributes--cannot process this file.\x0d\x0a"); len = strlen(buf); if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy(GFSW_dispbuf+dispbufidx, buf); dispbufidx += len; } --- 425,433 ---- if (GFSW_file_info.file_info[i].is_directory_error) { ! sprintf_s(buf, sizeof(buf), "\tError obtaining file attributes--cannot process this file.\x0d\x0a"); len = strlen(buf); if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy_s(GFSW_dispbuf+dispbufidx, sizeof(GFSW_dispbuf)-dispbufidx, buf); dispbufidx += len; } *************** *** 435,443 **** else if (GFSW_file_info.file_info[i].is_directory) { ! sprintf(buf, "\tThis item is a directory and will not be signatured.\x0d\x0a"); len = strlen(buf); if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy(GFSW_dispbuf+dispbufidx, buf); dispbufidx += len; } --- 435,443 ---- else if (GFSW_file_info.file_info[i].is_directory) { ! sprintf_s(buf, sizeof(buf), "\tThis item is a directory and will not be signatured.\x0d\x0a"); len = strlen(buf); if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy_s(GFSW_dispbuf+dispbufidx, sizeof(GFSW_dispbuf)-dispbufidx, buf); dispbufidx += len; } *************** *** 454,465 **** buf2[0] = 0; //Just in case conversion doesn't go right. ! sprintf(buf2, "%I64u", GFSW_file_info.file_info[i].file_size); BSTRFUNC_commanate(buf2); ! sprintf(buf, "\tSize:\t%s\x0d\x0a", buf2); len = strlen(buf); if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy(GFSW_dispbuf+dispbufidx, buf); dispbufidx += len; } --- 454,465 ---- buf2[0] = 0; //Just in case conversion doesn't go right. ! sprintf_s(buf2, sizeof(buf2), "%I64u", GFSW_file_info.file_info[i].file_size); BSTRFUNC_commanate(buf2); ! sprintf_s(buf, sizeof(buf), "\tSize:\t%s\x0d\x0a", buf2); len = strlen(buf); if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy_s(GFSW_dispbuf+dispbufidx, sizeof(GFSW_dispbuf)-dispbufidx, buf); dispbufidx += len; } *************** *** 469,477 **** if (GFSW_file_info.file_info[i].crc32_valid) { ! sprintf(buf, "\tCRC-32:\t%s\x0d\x0a", GFSW_file_info.file_info[i].crc32); len = strlen(buf); if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy(GFSW_dispbuf+dispbufidx, buf); dispbufidx += len; } --- 469,477 ---- if (GFSW_file_info.file_info[i].crc32_valid) { ! sprintf_s(buf, sizeof(buf), "\tCRC-32:\t%s\x0d\x0a", GFSW_file_info.file_info[i].crc32); len = strlen(buf); if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy_s(GFSW_dispbuf+dispbufidx, sizeof(GFSW_dispbuf)-dispbufidx, buf); dispbufidx += len; } *************** *** 481,489 **** if (GFSW_file_info.file_info[i].md5_valid) { ! sprintf(buf, "\tMD-5:\t%s\x0d\x0a", GFSW_file_info.file_info[i].md5); len = strlen(buf); if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy(GFSW_dispbuf+dispbufidx, buf); dispbufidx += len; } --- 481,489 ---- if (GFSW_file_info.file_info[i].md5_valid) { ! sprintf_s(buf, sizeof(buf), "\tMD-5:\t%s\x0d\x0a", GFSW_file_info.file_info[i].md5); len = strlen(buf); if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy_s(GFSW_dispbuf+dispbufidx, sizeof(GFSW_dispbuf)-dispbufidx, buf); dispbufidx += len; } *************** *** 502,514 **** if (GFSW_file_info.aborted) { ! sprintf(buf, "-------------------- FILE SIGNATURE ABORTED --------------------"); } else if (GFSW_file_info.terminated_normally) { ! sprintf(buf, "-------------------- FILE SIGNATURE COMPLETE --------------------"); } else { ! sprintf(buf, "-------------------- FILE SIGNATURE IN PROGRESS -------------------"); } --- 502,514 ---- if (GFSW_file_info.aborted) { ! sprintf_s(buf, sizeof(buf), "-------------------- FILE SIGNATURE ABORTED --------------------"); } else if (GFSW_file_info.terminated_normally) { ! sprintf_s(buf, sizeof(buf), "-------------------- FILE SIGNATURE COMPLETE --------------------"); } else { ! sprintf_s(buf, sizeof(buf), "-------------------- FILE SIGNATURE IN PROGRESS -------------------"); } *************** *** 516,520 **** if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy(GFSW_dispbuf+dispbufidx, buf); dispbufidx += len; } --- 516,520 ---- if ((len + dispbufidx + 2) < GFSW_DISPBUFLEN) { ! strcpy_s(GFSW_dispbuf+dispbufidx, sizeof(GFSW_dispbuf)-dispbufidx, buf); dispbufidx += len; } *************** *** 706,710 **** if (!GFSW_dialog_file_open_buffer[srccharidx+1]) { ! strcpy((char *)GFSW_file_info.file_info[0].fpath, GFSW_dialog_file_open_buffer); } else --- 706,710 ---- if (!GFSW_dialog_file_open_buffer[srccharidx+1]) { ! strcpy_s((char *)GFSW_file_info.file_info[0].fpath, sizeof(GFSW_file_info.file_info[0].fpath), GFSW_dialog_file_open_buffer); } else *************** *** 716,720 **** srccharidx++; ! strcpy((char *)GFSW_file_info.file_info[dstarridx].fpath, GFSW_dialog_file_open_buffer); //Watch out for adding two backslashes. This can happen if the path --- 716,720 ---- srccharidx++; ! strcpy_s((char *)GFSW_file_info.file_info[dstarridx].fpath, sizeof(GFSW_file_info.file_info[dstarridx].fpath), GFSW_dialog_file_open_buffer); //Watch out for adding two backslashes. This can happen if the path *************** *** 730,736 **** else { ! strcat((char *)GFSW_file_info.file_info[dstarridx].fpath, "\\"); } ! strcat((char *)GFSW_file_info.file_info[dstarridx].fpath, GFSW_dialog_file_open_buffer+srccharidx); while (GFSW_dialog_file_open_buffer[srccharidx] != 0) srccharidx++; --- 730,736 ---- else { ! strcat_s((char *)GFSW_file_info.file_info[dstarridx].fpath, sizeof(GFSW_file_info.file_info[dstarridx].fpath), "\\"); } ! strcat_s((char *)GFSW_file_info.file_info[dstarridx].fpath, sizeof(GFSW_file_info.file_info[dstarridx].fpath), GFSW_dialog_file_open_buffer+srccharidx); while (GFSW_dialog_file_open_buffer[srccharidx] != 0) srccharidx++; *************** *** 828,834 **** if (msg) { ! strcpy(msg, first_line); ! strcat(msg, second_line); ! strcat(msg, BUILD_CONFIG_HelpAboutMsgIdString); MessageBox (hwnd, msg, --- 828,834 ---- if (msg) { ! strcpy_s(msg, strlen(first_line)+strlen(second_line)+strlen(BUILD_CONFIG_HelpAboutMsgIdString)+1, first_line); ! strcat_s(msg, strlen(first_line)+strlen(second_line)+strlen(BUILD_CONFIG_HelpAboutMsgIdString)+1, second_line); ! strcat_s(msg, strlen(first_line)+strlen(second_line)+strlen(BUILD_CONFIG_HelpAboutMsgIdString)+1, BUILD_CONFIG_HelpAboutMsgIdString); MessageBox (hwnd, msg, *************** *** 1046,1051 **** //even read the file for CRC-32 and MD5. Just set info //and boogie. ! strcpy((char *)GFSW_file_info.file_info[fidx].crc32, "INVALID FILE HANDLE"); ! strcpy((char *)GFSW_file_info.file_info[fidx].md5, "INVALID FILE HANDLE"); } else --- 1046,1051 ---- //even read the file for CRC-32 and MD5. Just set info //and boogie. ! strcpy_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "INVALID FILE HANDLE"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), "INVALID FILE HANDLE"); } else *************** *** 1061,1066 **** if (rc == 0xFFFFFFFF) { ! strcpy((char *)GFSW_file_info.file_info[fidx].crc32, "FILE SEEK ERROR"); ! strcpy((char *)GFSW_file_info.file_info[fidx].md5, "FILE SEEK ERROR"); goto file_read_loop_endpoint; } --- 1061,1066 ---- if (rc == 0xFFFFFFFF) { ! strcpy_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "FILE SEEK ERROR"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), "FILE SEEK ERROR"); goto file_read_loop_endpoint; } *************** *** 1088,1093 **** if (!rv) { ! strcpy((char *)GFSW_file_info.file_info[fidx].crc32, "FILE READ ERROR"); ! strcpy((char *)GFSW_file_info.file_info[fidx].md5, "FILE READ ERROR"); goto file_read_loop_endpoint; } --- 1088,1093 ---- if (!rv) { ! strcpy_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "FILE READ ERROR"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), "FILE READ ERROR"); goto file_read_loop_endpoint; } *************** *** 1100,1105 **** else if (GFSW_thread_abort_request) { ! strcpy((char *)GFSW_file_info.file_info[fidx].crc32, "OPERATION ABORTED"); ! strcpy((char *)GFSW_file_info.file_info[fidx].md5, "OPERATION ABORTED"); goto file_read_loop_endpoint; } --- 1100,1105 ---- else if (GFSW_thread_abort_request) { ! strcpy_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "OPERATION ABORTED"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), "OPERATION ABORTED"); goto file_read_loop_endpoint; } *************** *** 1116,1123 **** //Form up a CRC-32 string. ! sprintf((char *)GFSW_file_info.file_info[fidx].crc32, "%8.8X", crc32); //Form up an MD-5 string. ! strcpy((char *)GFSW_file_info.file_info[fidx].md5, md5r.md5_chars); //Report progress to parent thread. --- 1116,1123 ---- //Form up a CRC-32 string. ! sprintf_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "%8.8X", crc32); //Form up an MD-5 string. ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), md5r.md5_chars); //Report progress to parent thread. *************** *** 1147,1152 **** if (!close_result) { ! strcpy((char *)GFSW_file_info.file_info[fidx].crc32, "FILE HANDLE CLOSE ERROR"); ! strcpy((char *)GFSW_file_info.file_info[fidx].md5, "FILE HANDLE CLOSE ERROR"); } } --- 1147,1152 ---- if (!close_result) { ! strcpy_s((char *)GFSW_file_info.file_info[fidx].crc32, sizeof(GFSW_file_info.file_info[fidx].crc32), "FILE HANDLE CLOSE ERROR"); ! strcpy_s((char *)GFSW_file_info.file_info[fidx].md5, sizeof(GFSW_file_info.file_info[fidx].md5), "FILE HANDLE CLOSE ERROR"); } } *************** *** 1250,1253 **** --- 1250,1256 ---- /****************************************************************************** ** $Log$ + ** Revision 1.26 2009/11/27 22:30:37 dtashley + ** Warnings from newer version of Visual Studio addressed. + ** ** Revision 1.25 2002/06/24 05:01:12 dtashley ** Additional documentation added for CreateFile() call. |
|
From: David T. A. <dta...@us...> - 2009-11-27 20:48:58
|
Update of /cvsroot/esrg/sfesrg/esrgpcpj/gfsw In directory sfp-cvsdas-1.v30.ch3.sourceforge.com:/tmp/cvs-serv10705 Added Files: gfsw.sln Log Message: Initial checkin. --- NEW FILE: gfsw.sln --- (This appears to be a binary file; contents omitted.) |
|
From: David T. A. <dta...@us...> - 2005-05-22 18:42:40
|
Update of /cvsroot/esrg/esrgubka/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3973/scripts Modified Files: cp_script.tcl Log Message: Addition of chapter. Index: cp_script.tcl =================================================================== RCS file: /cvsroot/esrg/esrgubka/scripts/cp_script.tcl,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** cp_script.tcl 22 May 2005 18:28:54 -0000 1.38 --- cp_script.tcl 22 May 2005 18:42:28 -0000 1.39 *************** *** 3256,3260 **** "F" \ "0" \ ! cis0 \ "Solutions: Classical And Simple Integer Algorithms And Techniques" \ "Solutions: Simple Integer Algorithms" \ --- 3256,3260 ---- "F" \ "0" \ ! cis0 \ "Solutions: Classical And Simple Integer Algorithms And Techniques" \ "Solutions: Simple Integer Algorithms" \ *************** *** 3264,3267 **** --- 3264,3275 ---- "F" \ "0" \ + css1 \ + "Canonical Server Setup" \ + "Canonical Server Setup" \ + "Canonical Server Setup" \ + "Canonical Server Setup" \ + "F" \ + "F" \ + "0" \ cst0 \ "Coding Standards" \ *************** *** 3888,3891 **** --- 3896,3903 ---- "" \ "" \ + "e" \ + "css1" \ + "" \ + "" \ "w" \ "sma0" \ *************** *** 4092,4095 **** --- 4104,4110 ---- #---------------------------------------------------------------------------------------- # $Log$ + # Revision 1.39 2005/05/22 18:42:28 dtashley + # Addition of chapter. + # # Revision 1.38 2005/05/22 18:28:54 dtashley # a)Addition of server-based tool set volume. |
|
From: David T. A. <dta...@us...> - 2005-05-22 18:32:30
|
Update of /cvsroot/esrg/esrgubka/c_css1 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1656 Added Files: c_css1.tex Log Message: Initial checkin. --- NEW FILE: c_css1.tex --- %$Header: /cvsroot/esrg/esrgubka/c_css1/c_css1.tex,v 1.1 2005/05/22 18:32:17 dtashley Exp $ \chapter{\ccssonelongtitle{}} \label{ccss1} \beginchapterquote{``\ldots{} Beauty is the first test: there is no permanent place in the world for ugly mathematics.''} {G. H. Hardy \cite[p.85]{bibref:b:mathematiciansapology:1940}} \index{Hardy, G. H.} \section{Introduction} %Section Tag: INT \label{ccss1:sint} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \noindent\begin{figure}[!b] \noindent\rule[-0.25in]{\textwidth}{1pt} \begin{tiny} \begin{verbatim} $RCSfile: c_css1.tex,v $ $Source: /cvsroot/esrg/esrgubka/c_css1/c_css1.tex,v $ $Revision: 1.1 $ $Author: dtashley $ $Date: 2005/05/22 18:32:17 $ \end{verbatim} \end{tiny} \noindent\rule[0.25in]{\textwidth}{1pt} \end{figure} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % $Log: c_css1.tex,v $ % Revision 1.1 2005/05/22 18:32:17 dtashley % Initial checkin. % %End of file $RCSfile: c_css1.tex,v $. |
|
From: David T. A. <dta...@us...> - 2005-05-22 18:31:51
|
Update of /cvsroot/esrg/esrgubka/c_css1 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1500/c_css1 Log Message: Directory /cvsroot/esrg/esrgubka/c_css1 added to the repository |
|
From: David T. A. <dta...@us...> - 2005-05-22 18:29:03
|
Update of /cvsroot/esrg/esrgubka/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv967/scripts Modified Files: cp_script.tcl Log Message: a)Addition of server-based tool set volume. b)Addition of chapter to that volume. Index: cp_script.tcl =================================================================== RCS file: /cvsroot/esrg/esrgubka/scripts/cp_script.tcl,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** cp_script.tcl 22 May 2005 17:53:33 -0000 1.37 --- cp_script.tcl 22 May 2005 18:28:54 -0000 1.38 *************** *** 2921,2930 **** "1" \ ijt0 \ ! "ESRG Tool Set Reference Guide" \ ! "ESRG Tool Set Reference Guide" \ ! "ESRG Tool Set Reference Guide" \ ! "ESRG Tool Set Reference Guide" \ ! "ESRG Tool Set Reference Guide" \ ! "ESRG Tool Set Reference Guide" \ "1" \ sma0 \ --- 2921,2938 ---- "1" \ ijt0 \ ! "ESRG Workstation-Based Tool Set Reference Guide" \ ! "ESRG Workstation-Based Tool Set Reference Guide" \ ! "ESRG Workstation-Based Tool Set Reference Guide" \ ! "ESRG Workstation-Based Tool Set Reference Guide" \ ! "ESRG Workstation-Based Tool Set Reference Guide" \ ! "ESRG Workstation-Based Tool Set Reference Guide" \ ! "1" \ ! ijv0 \ ! "ESRG Server-Based Tool Set Reference Guide" \ ! "ESRG Server-Based Tool Set Reference Guide" \ ! "ESRG Server-Based Tool Set Reference Guide" \ ! "ESRG Server-Based Tool Set Reference Guide" \ ! "ESRG Server-Based Tool Set Reference Guide" \ ! "ESRG Server-Based Tool Set Reference Guide" \ "1" \ sma0 \ *************** *** 3376,3379 **** --- 3384,3395 ---- "F" \ "0" \ + isa1 \ + "Introduction and Server Architecture" \ + "Introduction and Server Architecture" \ + "Introduction and Server Architecture" \ + "Introduction and Server Architecture" \ + "F" \ + "F" \ + "0" \ isk0 \ "Insektengericht And Lessons Learned" \ *************** *** 3865,3868 **** --- 3881,3892 ---- "" \ "w" \ + "ijv0" \ + "" \ + "" \ + "e" \ + "isa1" \ + "" \ + "" \ + "w" \ "sma0" \ "" \ *************** *** 4068,4071 **** --- 4092,4099 ---- #---------------------------------------------------------------------------------------- # $Log$ + # Revision 1.38 2005/05/22 18:28:54 dtashley + # a)Addition of server-based tool set volume. + # b)Addition of chapter to that volume. + # # Revision 1.37 2005/05/22 17:53:33 dtashley # Modified to use Adobe 6.0 Distiller rather than Adobe 4.0 Distiller. |
|
From: David T. A. <dta...@us...> - 2005-05-22 18:15:10
|
Update of /cvsroot/esrg/esrgubka/c_isa1 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31219 Added Files: c_isa1.tex Log Message: Initial checkin. --- NEW FILE: c_isa1.tex --- %$Header: /cvsroot/esrg/esrgubka/c_isa1/c_isa1.tex,v 1.1 2005/05/22 18:15:02 dtashley Exp $ \chapter{\cisaonelongtitle{}} \label{cisa1} \beginchapterquote{``\ldots{} Beauty is the first test: there is no permanent place in the world for ugly mathematics.''} {G. H. Hardy \cite[p.85]{bibref:b:mathematiciansapology:1940}} \index{Hardy, G. H.} \section{Introduction} %Section Tag: INT \label{cisa1:sint} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \noindent\begin{figure}[!b] \noindent\rule[-0.25in]{\textwidth}{1pt} \begin{tiny} \begin{verbatim} $RCSfile: c_isa1.tex,v $ $Source: /cvsroot/esrg/esrgubka/c_isa1/c_isa1.tex,v $ $Revision: 1.1 $ $Author: dtashley $ $Date: 2005/05/22 18:15:02 $ \end{verbatim} \end{tiny} \noindent\rule[0.25in]{\textwidth}{1pt} \end{figure} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % $Log: c_isa1.tex,v $ % Revision 1.1 2005/05/22 18:15:02 dtashley % Initial checkin. % %End of file $RCSfile: c_isa1.tex,v $. |
|
From: David T. A. <dta...@us...> - 2005-05-22 18:14:43
|
Update of /cvsroot/esrg/esrgubka/c_isa1 In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31167/c_isa1 Log Message: Directory /cvsroot/esrg/esrgubka/c_isa1 added to the repository |
|
From: David T. A. <dta...@us...> - 2005-05-22 17:55:11
|
Update of /cvsroot/esrg/esrgubka/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27155 Added Files: egc.exe Log Message: Addition of the script interpreter under the CVS archives (makes it easier to build the book). --- NEW FILE: egc.exe --- (This appears to be a binary file; contents omitted.) |
|
From: David T. A. <dta...@us...> - 2005-05-22 17:53:42
|
Update of /cvsroot/esrg/esrgubka/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26914 Modified Files: cp_script.tcl Log Message: Modified to use Adobe 6.0 Distiller rather than Adobe 4.0 Distiller. Index: cp_script.tcl =================================================================== RCS file: /cvsroot/esrg/esrgubka/scripts/cp_script.tcl,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** cp_script.tcl 22 Feb 2004 15:01:57 -0000 1.36 --- cp_script.tcl 22 May 2005 17:53:33 -0000 1.37 *************** *** 2843,2847 **** #Executable for Acrobat Distiller. ! set execAcrobatDistiller "c:/program files/adobe/acrobat 4.0/distillr/acrodist.exe" --- 2843,2847 ---- #Executable for Acrobat Distiller. ! set execAcrobatDistiller "c:/program files/adobe/acrobat 6.0/distillr/acrodist.exe" *************** *** 4068,4071 **** --- 4068,4074 ---- #---------------------------------------------------------------------------------------- # $Log$ + # Revision 1.37 2005/05/22 17:53:33 dtashley + # Modified to use Adobe 6.0 Distiller rather than Adobe 4.0 Distiller. + # # Revision 1.36 2004/02/22 15:01:57 dtashley # Edits. |
|
From: David T. A. <dta...@us...> - 2005-02-06 20:39:58
|
Update of /cvsroot/esrg/esrgweba/htdocs/authindiv/dtashley/resumes In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8000 Modified Files: resume.rtf Log Message: Edits. Index: resume.rtf =================================================================== RCS file: /cvsroot/esrg/esrgweba/htdocs/authindiv/dtashley/resumes/resume.rtf,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** resume.rtf 9 Sep 2004 00:46:42 -0000 1.2 --- resume.rtf 6 Feb 2005 20:39:36 -0000 1.3 *************** *** 13,20 **** \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext24 footer;}{\*\cs25 \additive \sbasedon10 page number;}{\s26\ql \fi-900\li900\ri0\widctlpar\tx720\tx900\nooverflow\faroman\rin0\lin900\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon20 \snext26 Single column bullets indent 1;}{\*\cs27 \additive \ul\cf2 \sbasedon10 Hyperlink;}}{\info{\title David T}{\author David Ashley}{\operator David T. Ashley} ! {\creatim\yr2002\mo4\dy3\hr13\min53}{\revtim\yr2004\mo9\dy8\hr20\min36}{\printim\yr2002\mo8\dy7\hr14\min12}{\version54}{\edmins161}{\nofpages4}{\nofwords1219}{\nofchars6952}{\*\company NA}{\nofcharsws0}{\vern8283}}\margt1584\margb1728 \widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\lytprtmet\hyphcaps0\formshade\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow1\dgvshow0 \jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\bdrrlswsix\nolnhtadjtbl\oldas \fet0\sectd \linex0\footery1008\endnhere\sectdefaultcl {\footer \pard\plain \s24\qc \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\nooverflow\faroman\rin0\lin0\itap0 ! \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\fs16 Ashley, Page }{\field{\*\fldinst {\cs25\fs16 PAGE }}{\fldrslt {\cs25\fs16\lang1024\langfe1024\noproof 1}}}{\cs25\fs16 /}{\field{\*\fldinst {\cs25\fs16 NUMPAGES }}{\fldrslt { \cs25\fs16\lang1024\langfe1024\noproof 4}}}{\cs25\fs16 \par $Id$}{ --- 13,20 ---- \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext24 footer;}{\*\cs25 \additive \sbasedon10 page number;}{\s26\ql \fi-900\li900\ri0\widctlpar\tx720\tx900\nooverflow\faroman\rin0\lin900\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \sbasedon20 \snext26 Single column bullets indent 1;}{\*\cs27 \additive \ul\cf2 \sbasedon10 Hyperlink;}}{\info{\title David T}{\author David Ashley}{\operator David T. Ashley} ! {\creatim\yr2002\mo4\dy3\hr13\min53}{\revtim\yr2005\mo2\dy6\hr15\min43}{\printim\yr2002\mo8\dy7\hr14\min12}{\version55}{\edmins165}{\nofpages4}{\nofwords1219}{\nofchars6952}{\*\company NA}{\nofcharsws0}{\vern8283}}\margt1584\margb1728 \widowctrl\ftnbj\aenddoc\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\lytprtmet\hyphcaps0\formshade\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow1\dgvshow0 \jexpand\viewkind1\viewscale100\pgbrdrhead\pgbrdrfoot\bdrrlswsix\nolnhtadjtbl\oldas \fet0\sectd \linex0\footery1008\endnhere\sectdefaultcl {\footer \pard\plain \s24\qc \li0\ri0\widctlpar\tqc\tx4320\tqr\tx8640\nooverflow\faroman\rin0\lin0\itap0 ! \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\fs16 Ashley, Page }{\field{\*\fldinst {\cs25\fs16 PAGE }}{\fldrslt {\cs25\fs16\lang1024\langfe1024\noproof 2}}}{\cs25\fs16 /}{\field{\*\fldinst {\cs25\fs16 NUMPAGES }}{\fldrslt { \cs25\fs16\lang1024\langfe1024\noproof 4}}}{\cs25\fs16 \par $Id$}{ *************** *** 25,36 **** \par }\pard\plain \s17\qc \li0\ri0\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {861 E. Michigan Ave., Apt. 126 \par Marshall, Michigan, 49068 ! \par (313) 570-9719 ! \par }{\field{\*\fldinst { HYPERLINK "mailto:dta...@ao..." }{{\*\datafield ! 00d0c9ea79f9bace118c8200aa004ba90b020000001700000011000000640074006100730068006c0065007900400061006f006c002e0063006f006d000000e0c9ea79f9bace118c8200aa004ba90b300000006d00610069006c0074006f003a00640074006100730068006c0065007900400061006f006c002e0063006f00 ! 6d000000}}}{\fldrslt {\cs27\ul\cf2 dta...@ao...}}}{ \par }\pard\plain \ql \li0\ri0\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 { \par }\pard\plain \s22\qc \li0\ri0\sb240\keepn\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \b\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {OBJECTIVE ! \par }\pard\plain \s19\ql \li90\ri0\widctlpar\nooverflow\faroman\rin0\lin90\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {Challenging position developing software and hardware for high-volume embedded systems; with a pref ! erence for safety-critical systems. \par }\pard\plain \s22\qc \li0\ri0\sb240\keepn\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \b\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {HIGHLIGHTS OF QUALIFICATIONS \par }\pard\plain \s20\ql \fi-270\li270\ri0\widctlpar\tx90\tx270\nooverflow\faroman\rin0\lin270\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab --- 25,36 ---- \par }\pard\plain \s17\qc \li0\ri0\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {861 E. Michigan Ave., Apt. 126 \par Marshall, Michigan, 49068 ! \par (269) 781-0134 ! \par }{\field{\*\fldinst { HYPERLINK "mailto:da...@ab..." }{{\*\datafield ! 00d0c9ea79f9bace118c8200aa004ba90b02000000170000001b00000064006100730068006c006500790040006100620069002d0063006f006e00730075006c00740069006e0067002e0063006f006d000000e0c9ea79f9bace118c8200aa004ba90b440000006d00610069006c0074006f003a0064006100730068006c00 ! 6500790040006100620069002d0063006f006e00730075006c00740069006e0067002e0063006f006d000000}}}{\fldrslt {\cs27\ul\cf2 da...@ab...}}}{ \par }\pard\plain \ql \li0\ri0\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 { \par }\pard\plain \s22\qc \li0\ri0\sb240\keepn\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \b\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {OBJECTIVE ! \par }\pard\plain \s19\ql \li90\ri0\widctlpar\nooverflow\faroman\rin0\lin90\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 { ! Challenging position developing software and hardware for high-volume embedded systems; with a preference for safety-critical systems. \par }\pard\plain \s22\qc \li0\ri0\sb240\keepn\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \b\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {HIGHLIGHTS OF QUALIFICATIONS \par }\pard\plain \s20\ql \fi-270\li270\ri0\widctlpar\tx90\tx270\nooverflow\faroman\rin0\lin270\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab *************** *** 71,74 **** --- 71,75 ---- \par }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab Developed and maintained *nix server applications to facilitate embedded software development (version control, web-based databases). \par \tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab Prepared functional specifications using Matlab/Simulink/Stateflow. + \par \tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab Tested and evaluated braking algorithms in all climates and surface conditions. \par }\pard \s20\ql \li0\ri0\keepn\widctlpar\tx90\tx270\nooverflow\faroman\rin0\lin0\itap0 {\b \par }\pard \s20\ql \fi-274\li274\ri0\keepn\widctlpar\tx90\tx270\nooverflow\faroman\rin0\lin274\itap0 {\b \tab Autoliv Electronics America, July, 2003-April, 2004 *************** *** 107,112 **** \tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab C++ (1 year) \par \tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab Java (working knowledge, including applets)\tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab Tcl/Tk (1 year) ! \par }\pard\plain \s20\ql \fi-270\li270\ri0\widctlpar\tx90\tx270\nooverflow\faroman\rin0\lin270\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab ! Assembly-Languages: 80x86, TMS-370C8, 68HC05, 68HC08, 68HC11, 68HC12 (10+ years) \par }\pard\plain \s22\qc \li0\ri0\sb240\keepn\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \b\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {SOFTWARE DEVELOPMENT SUITES/IDEs \par }\pard\plain \s23\ql \li0\ri0\widctlpar\tx90\tx270\tx6300\tx6480\nooverflow\faroman\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab --- 108,113 ---- \tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab C++ (1 year) \par \tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab Java (working knowledge, including applets)\tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab Tcl/Tk (1 year) ! \par }\pard\plain \s20\ql \fi-270\li270\ri0\widctlpar\tx90\tx270\nooverflow\faroman\rin0\lin270\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab Assem ! bly-Languages: 80x86, TMS-370C8, 68HC05, 68HC08, 68HC11, 68HC12 (10+ years) \par }\pard\plain \s22\qc \li0\ri0\sb240\keepn\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \b\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {SOFTWARE DEVELOPMENT SUITES/IDEs \par }\pard\plain \s23\ql \li0\ri0\widctlpar\tx90\tx270\tx6300\tx6480\nooverflow\faroman\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab *************** *** 123,128 **** SCP (including all aspects of collision detection and arbitration, error detection, software support, and software real-time analysis). \par \tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab CAN (including all aspects of collision detection and arbitration, error detection, software support, and software real-time analysis). ! \par \tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab UART-based protocols (RS-485, UBP, ACP, ordinary serial communication) including all aspects of collision detection and arbitration, error detection, software ! support, UART support, PIC support, and software real-time analysis). \par }\pard\plain \s22\qc \li0\ri0\sb240\keepn\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \b\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {SOFTWARE DESIGN AIDS \par }\pard\plain \s23\ql \li0\ri0\widctlpar\tx90\tx270\tx6300\tx6480\nooverflow\faroman\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab Cadre Teamwork --- 124,129 ---- SCP (including all aspects of collision detection and arbitration, error detection, software support, and software real-time analysis). \par \tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab CAN (including all aspects of collision detection and arbitration, error detection, software support, and software real-time analysis). ! \par \tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab ! UART-based protocols (RS-485, UBP, ACP, ordinary serial communication) including all aspects of collision detection and arbitration, error detection, software support, UART support, PIC support, and software real-time analysis). \par }\pard\plain \s22\qc \li0\ri0\sb240\keepn\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \b\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {SOFTWARE DESIGN AIDS \par }\pard\plain \s23\ql \li0\ri0\widctlpar\tx90\tx270\tx6300\tx6480\nooverflow\faroman\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab Cadre Teamwork *************** *** 131,136 **** \par }\pard\plain \s22\qc \li0\ri0\sb240\keepn\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \b\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {VERSION CONTROL TOOLS ! \par }\pard\plain \s23\ql \li0\ri0\widctlpar\tx90\tx270\tx6300\tx6480\nooverflow\faroman\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab ! Intersolv PVCS (5+ years)\tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab Microsoft Visual Source \par \tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab CVS (2+ years)\tab \tab Safe (2 years) \par }\pard\plain \s22\qc \li0\ri0\sb240\keepn\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \b\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {OFFICE TOOLS --- 132,137 ---- \par }\pard\plain \s22\qc \li0\ri0\sb240\keepn\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \b\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {VERSION CONTROL TOOLS ! \par }\pard\plain \s23\ql \li0\ri0\widctlpar\tx90\tx270\tx6300\tx6480\nooverflow\faroman\rin0\lin0\itap0 \fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {\tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab I ! ntersolv PVCS (5+ years)\tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab Microsoft Visual Source \par \tab }{{\field{\*\fldinst SYMBOL 183 \\f "Symbol" \\s 10}{\fldrslt\f3\fs20}}}{\tab CVS (2+ years)\tab \tab Safe (2 years) \par }\pard\plain \s22\qc \li0\ri0\sb240\keepn\widctlpar\nooverflow\faroman\rin0\lin0\itap0 \b\fs20\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 {OFFICE TOOLS |
|
From: David T. A. <dta...@us...> - 2004-11-21 04:19:32
|
Update of /cvsroot/esrg/dta_flta/fltlogs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10052 Modified Files: logbook01.xls Log Message: Incorporation of logbook through 11/20/04. Index: logbook01.xls =================================================================== RCS file: /cvsroot/esrg/dta_flta/fltlogs/logbook01.xls,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 Binary files /tmp/cvsnNXBdY and /tmp/cvsrIVxrN differ |
|
From: David T. A. <dta...@us...> - 2004-11-13 01:03:28
|
Update of /cvsroot/esrg/dta_flta/flthbk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28754 Modified Files: flthbk01.rtf Log Message: Edits. Index: flthbk01.rtf =================================================================== RCS file: /cvsroot/esrg/dta_flta/flthbk/flthbk01.rtf,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** flthbk01.rtf 28 Oct 2004 00:47:12 -0000 1.15 --- flthbk01.rtf 13 Nov 2004 01:03:05 -0000 1.16 *************** *** 1,21 **** {\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1033{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f1\fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Arial;} {\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;}{\f14\fnil\fcharset2\fprq2{\*\panose 05000000000000000000}Wingdings;} ! {\f121\froman\fcharset238\fprq2 Times New Roman CE;}{\f122\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f124\froman\fcharset161\fprq2 Times New Roman Greek;}{\f125\froman\fcharset162\fprq2 Times New Roman Tur;} ! {\f126\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f127\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f128\froman\fcharset186\fprq2 Times New Roman Baltic;}{\f129\fswiss\fcharset238\fprq2 Arial CE;} ! {\f130\fswiss\fcharset204\fprq2 Arial Cyr;}{\f132\fswiss\fcharset161\fprq2 Arial Greek;}{\f133\fswiss\fcharset162\fprq2 Arial Tur;}{\f134\fswiss\fcharset177\fprq2 Arial (Hebrew);}{\f135\fswiss\fcharset178\fprq2 Arial (Arabic);} ! {\f136\fswiss\fcharset186\fprq2 Arial Baltic;}{\f137\fmodern\fcharset238\fprq1 Courier New CE;}{\f138\fmodern\fcharset204\fprq1 Courier New Cyr;}{\f140\fmodern\fcharset161\fprq1 Courier New Greek;}{\f141\fmodern\fcharset162\fprq1 Courier New Tur;} ! {\f142\fmodern\fcharset177\fprq1 Courier New (Hebrew);}{\f143\fmodern\fcharset178\fprq1 Courier New (Arabic);}{\f144\fmodern\fcharset186\fprq1 Courier New Baltic;}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255; ! \red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0; ! \red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs24\lang1033\langfe1033\cgrid\langnp1033\langfenp1033 \snext0 Normal;}{ ! \s1\ql \fi-432\li432\ri0\sb240\sa60\keepn\widctlpar\jclisttab\tx432\aspalpha\aspnum\faauto\ls1\adjustright\rin0\lin432\itap0 \b\f1\fs32\lang1033\langfe1033\kerning32\cgrid\langnp1033\langfenp1033 \sbasedon0 \snext0 heading 1;}{ [...1556 lines suppressed...] ! \brdrs\brdrw45 \clbrdrl\brdrs\brdrw45 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4428 \cellx8748\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {1200\cell VFR flight\cell }\pard ! \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 ! \trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw45 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw45 \cltxlrtb\clftsWidth3\clwWidth4428 \cellx4320\clvertalt\clbrdrt\brdrs\brdrw45 \clbrdrl ! \brdrs\brdrw45 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4428 \cellx8748\row }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 ! \trbrdrv\brdrs\brdrw10 \trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw45 \cltxlrtb\clftsWidth3\clwWidth4428 \cellx4320\clvertalt\clbrdrt ! \brdrs\brdrw10 \clbrdrl\brdrs\brdrw45 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4428 \cellx8748\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {7500\cell Hijack\cell }\pard ! \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 ! \trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw45 \cltxlrtb\clftsWidth3\clwWidth4428 \cellx4320\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl ! \brdrs\brdrw45 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4428 \cellx8748\row }\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {7600\cell Two-way radio communication failure\cell }\pard ! \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 ! \trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw45 \cltxlrtb\clftsWidth3\clwWidth4428 \cellx4320\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl ! \brdrs\brdrw45 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4428 \cellx8748\row }\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 ! \trbrdrv\brdrs\brdrw10 \trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw45 \cltxlrtb\clftsWidth3\clwWidth4428 \cellx4320\clvertalt\clbrdrt ! \brdrs\brdrw10 \clbrdrl\brdrs\brdrw45 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4428 \cellx8748\pard \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {7700\cell All other emergencies\cell }\pard ! \ql \li0\ri0\widctlpar\intbl\aspalpha\aspnum\faauto\adjustright\rin0\lin0 {\trowd \trgaph108\trleft-108\trbrdrt\brdrs\brdrw10 \trbrdrl\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrh\brdrs\brdrw10 \trbrdrv\brdrs\brdrw10 ! \trftsWidth1\trautofit1\trpaddl108\trpaddr108\trpaddfl3\trpaddfr3 \clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl\brdrs\brdrw10 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw45 \cltxlrtb\clftsWidth3\clwWidth4428 \cellx4320\clvertalt\clbrdrt\brdrs\brdrw10 \clbrdrl ! \brdrs\brdrw45 \clbrdrb\brdrs\brdrw10 \clbrdrr\brdrs\brdrw10 \cltxlrtb\clftsWidth3\clwWidth4428 \cellx8748\row }\pard \ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 { \par \par }} \ No newline at end of file |