| 
				
				
					
				
				
				 | 
			
			 | 
			@@ -67,19 +67,22 @@ static int run_test(int cbc, int decrypt) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			} | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			union word_byte { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    uint64_t word; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    uint8_t byte[8]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			}; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			
  | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			int main(void) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			{ | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    AVDES d; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    int i; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    uint64_t key[3]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    uint64_t data; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    uint64_t ct; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    union word_byte key[3], data, ct; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    uint64_t roundkeys[16]; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    srand(av_gettime()); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    key[0] = AV_RB64(test_key); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    data   = AV_RB64(plain); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    gen_roundkeys(roundkeys, key[0]); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (des_encdec(data, roundkeys, 0) != AV_RB64(crypt)) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    key[0].word = AV_RB64(test_key); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    data.word   = AV_RB64(plain); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    gen_roundkeys(roundkeys, key[0].word); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    if (des_encdec(data.word, roundkeys, 0) != AV_RB64(crypt)) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        printf("Test 1 failed\n"); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return 1; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
	
		
			
				| 
				
				
				
					
				
				 | 
			
			 | 
			@@ -94,15 +97,15 @@ int main(void) | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        return 1; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    } | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			    for (i = 0; i < 1000; i++) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        key[0] = rand64(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        key[1] = rand64(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        key[2] = rand64(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        data   = rand64(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        av_des_init(&d, key, 192, 0); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        av_des_crypt(&d, &ct, &data, 1, NULL, 0); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        av_des_init(&d, key, 192, 1); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        av_des_crypt(&d, &ct, &ct, 1, NULL, 1); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (ct != data) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        key[0].word = rand64(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        key[1].word = rand64(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        key[2].word = rand64(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        data.word   = rand64(); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        av_des_init(&d, key[0].byte, 192, 0); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        av_des_crypt(&d, ct.byte, data.byte, 1, NULL, 0); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        av_des_init(&d, key[0].byte, 192, 1); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        av_des_crypt(&d, ct.byte, ct.byte, 1, NULL, 1); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        if (ct.word != data.word) { | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            printf("Test 2 failed\n"); | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			            return 1; | 
		
		
	
		
			
			 | 
			 | 
			
			 | 
			        } | 
		
		
	
	
		
			
				| 
				
					
				
				
				
				 | 
			
			 | 
			
  |