summaryrefslogtreecommitdiffstats
path: root/apps/enc.c
diff options
context:
space:
mode:
authorBen Laurie <ben@openssl.org>1999-11-30 20:15:19 +0000
committerBen Laurie <ben@openssl.org>1999-11-30 20:15:19 +0000
commitfea9afbfc7005fb85ab470546fb15f8a76055e7e (patch)
treec21cdd5e7807d990c7fc12765ad37d7f11528aad /apps/enc.c
parent5f2f0b5596fd458ed83b3adf5b71086973cd1a07 (diff)
Make salting the default. Fail gracefully if the input is not salted.
Diffstat (limited to 'apps/enc.c')
-rw-r--r--apps/enc.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/apps/enc.c b/apps/enc.c
index d2d8aa0c37..e584241bf1 100644
--- a/apps/enc.c
+++ b/apps/enc.c
@@ -82,6 +82,8 @@ int set_hex(char *in,unsigned char *out,int size);
int MAIN(int argc, char **argv)
{
+ static const char magic[]="Salted__";
+ char mbuf[8]; /* should be 1 smaller than magic */
char *strbuf=NULL;
unsigned char *buff=NULL,*bufsize=NULL;
int bsize=BSIZE,verbose=0;
@@ -91,7 +93,7 @@ int MAIN(int argc, char **argv)
char *str=NULL;
char *hkey=NULL,*hiv=NULL,*hsalt = NULL;
int enc=1,printkey=0,i,base64=0;
- int debug=0,olb64=0,nosalt=1;
+ int debug=0,olb64=0,nosalt=0;
const EVP_CIPHER *cipher=NULL,*c;
char *inf=NULL,*outf=NULL;
BIO *in=NULL,*out=NULL,*b64=NULL,*benc=NULL,*rbio=NULL,*wbio=NULL;
@@ -448,17 +450,26 @@ bad:
}
} else RAND_bytes(salt, PKCS5_SALT_LEN);
/* If -P option then don't bother writing */
- if((printkey != 2) && (BIO_write(wbio,
- (char *)salt,
- PKCS5_SALT_LEN) != PKCS5_SALT_LEN)) {
+ if((printkey != 2)
+ && (BIO_write(wbio,magic,
+ sizeof magic-1) != sizeof magic-1
+ || BIO_write(wbio,
+ (char *)salt,
+ PKCS5_SALT_LEN) != PKCS5_SALT_LEN)) {
BIO_printf(bio_err,"error writing output file\n");
goto end;
}
- } else if(BIO_read(rbio, (unsigned char *)salt,
+ } else if(BIO_read(rbio,mbuf,sizeof mbuf) != sizeof mbuf
+ || BIO_read(rbio,
+ (unsigned char *)salt,
PKCS5_SALT_LEN) != PKCS5_SALT_LEN) {
BIO_printf(bio_err,"error reading input file\n");
goto end;
+ } else if(memcmp(mbuf,magic,sizeof magic-1)) {
+ BIO_printf(bio_err,"bad magic number\n");
+ goto end;
}
+
sptr = salt;
}