2011-06-03 4 views
7

उदाहरण के लिए, में:ओपनएसएसएल: इनपुट और आउटपुट बफर एन्क्रिप्ट/डिक्रिप्ट दिनचर्या के लिए समान हो सकता है?

int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, 
       int *outl, unsigned char *in, int inl); 

... out कर सकते हैं == in?

+0

मुझे लगता है कि नहीं, लेकिन आपने तब से प्रयास किया है? मुझे जानकर खुशी होगी। – Francois

उत्तर

5

मैं इस प्रश्न पर ठोकर खाई क्योंकि मैं खुद उत्सुक था। चूंकि किसी ने उत्तर नहीं दिया, मैंने कोशिश की और यह वास्तव में काम करता है (कम से कम एईएस सीटीआर 128 डिक्रिप्शन के साथ) इसलिए मैं अनुमान लगाता हूं कि यह अन्य प्रकार के लिए भी काम करता है। यदि आप रुचि रखते हैं तो यहां मेरा कोड नमूना है।

/* Test Vector from http://www.inconteam.com/software-development/41-encryption/55-aes-test-vectors */ 

const unsigned char key[16] = { 0x2b, 0x7e, 0x15, 0x16, 
           0x28, 0xae, 0xd2, 0xa6, 
           0xab, 0xf7, 0x15, 0x88, 
           0x09, 0xcf, 0x4f, 0x3c }; 

const unsigned char IV[16] = { 0xf0, 0xf1, 0xf2, 0xf3, 
           0xf4, 0xf5, 0xf6, 0xf7, 
           0xf8, 0xf9, 0xfa, 0xfb, 
           0xfc, 0xfd, 0xfe, 0xff }; 

unsigned char test[16] = { 0x6b, 0xc1, 0xbe, 0xe2, 
           0x2e, 0x40, 0x9f, 0x96, 
           0xe9, 0x3d, 0x7e, 0x11, 
           0x73, 0x93, 0x17, 0x2a }; 

EVP_CIPHER_CTX mCtx; 
EVP_DecryptInit(&mCtx, EVP_aes_128_ctr(), key, IV); 
int out_size; 
EVP_DecryptUpdate(&mCtx, test, &out_size, test, 16); 
+0

मैंने इसे एन्क्रिप्शन (एईएस 128 सीबीसी) के साथ भी आजमाया है, और यह काम करता है। – apanloco

संबंधित मुद्दे