Anyone have any ideas? Thanks
On Wed, Feb 13, 2008 at 6:44 PM, Joel Christner <[EMAIL PROTECTED]> wrote: > Hello, > > I have a simple client-server program and am using blowfish. I'm using > the EVP_* routines to initialize, encrypt, and decrypt. Variable-length > data is taken in from the client through stdin and sent to the server socket > after encryption. One question I have is how I clear what's already been > decrypted on the server-side from the buffer. It appears that the data I've > already read out of the buffer (post-decryption) is not being discarded, > thus when data is received, it starts back at the beginning and I get the > same data back. Any insight would be much appreciated! > > On my client side, my code is (simplified) > > EVP_EncryptInit(&context,EVP_bf_cbc(),key,iv): > while(1) { > fgets(buffer,sizeof(buffer),stdin); > padBuffer(buffer,paddedBuffer); (my own routine just to pad to length > that is multiplier of 8-bytes) > writeBuffer=encrypt(&context,paddedBuffer,strlen(paddedBuffer),&i); > writeData=sendto(connfd,writeBuffer,strlen(writeBuffer),0,(struct sockaddr > *)&serveraddress,sizeof(serveraddress)); > } > > and on the server side, my code is (simplified): > > EVP_DecryptInit(&context,EVP_bf_cbc(),key,iv); > while(1) { > dataRead=recvfrom(connfd,readBuffer,sizeof(readBuffer),0,NULL,NULL); > for (i=0;i<strlen(readBuffer);i++) { > readBufferClear=decrypt(&context,readBuffer+i,1); > if (readBufferClear!=0) > strncat(readBufferFinal,readBufferClear,strlen(readBufferClear)); > } > unpadBuffer(readBufferFinal,readBufferPadded); > printf("cleartext=%s\n",readBufferPadded); > } > >