mirror of
https://github.com/mtrojnar/osslsigncode.git
synced 2025-05-20 10:24:29 -05:00
Clean up arrays (#139)
- move large arrays to the heap - use the `const` type qualifier with constant arrays
This commit is contained in:
parent
5d68e8699a
commit
ac672640be
5
msi.h
5
msi.h
@ -100,6 +100,9 @@
|
|||||||
#define TRUE 1
|
#define TRUE 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define SIZE_64K 65536 /* 2^16 */
|
||||||
|
#define SIZE_16M 16777216 /* 2^24 */
|
||||||
|
|
||||||
typedef unsigned char u_char;
|
typedef unsigned char u_char;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -179,7 +182,7 @@ typedef struct {
|
|||||||
uint32_t sectorSize;
|
uint32_t sectorSize;
|
||||||
} MSI_OUT;
|
} MSI_OUT;
|
||||||
|
|
||||||
static u_char msi_magic[] = {
|
static const u_char msi_magic[] = {
|
||||||
0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1
|
0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -664,7 +664,7 @@ IMPLEMENT_ASN1_FUNCTIONS(TimeStampToken)
|
|||||||
* 2:d=1 hl=2 l= 2 prim: BIT STRING
|
* 2:d=1 hl=2 l= 2 prim: BIT STRING
|
||||||
* 6:d=1 hl=2 l= 0 cons: SEQUENCE
|
* 6:d=1 hl=2 l= 0 cons: SEQUENCE
|
||||||
*/
|
*/
|
||||||
static const u_char java_attrs_low[] = {
|
const u_char java_attrs_low[] = {
|
||||||
0x30, 0x06, 0x03, 0x02, 0x00, 0x01, 0x30, 0x00
|
0x30, 0x06, 0x03, 0x02, 0x00, 0x01, 0x30, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -673,9 +673,9 @@ static const u_char java_attrs_low[] = {
|
|||||||
* 0:d=0 hl=2 l= 12 cons: SEQUENCE
|
* 0:d=0 hl=2 l= 12 cons: SEQUENCE
|
||||||
* 2:d=1 hl=2 l= 10 prim: OBJECT :Microsoft Individual Code Signing
|
* 2:d=1 hl=2 l= 10 prim: OBJECT :Microsoft Individual Code Signing
|
||||||
*/
|
*/
|
||||||
static u_char purpose_ind[] = {
|
const u_char purpose_ind[] = {
|
||||||
0x30, 0x0c,
|
0x30, 0x0c, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04,
|
||||||
0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x02, 0x01, 0x15
|
0x01, 0x82, 0x37, 0x02, 0x01, 0x15
|
||||||
};
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -683,9 +683,14 @@ static u_char purpose_ind[] = {
|
|||||||
* 0:d=0 hl=2 l= 12 cons: SEQUENCE
|
* 0:d=0 hl=2 l= 12 cons: SEQUENCE
|
||||||
* 2:d=1 hl=2 l= 10 prim: OBJECT :Microsoft Commercial Code Signing
|
* 2:d=1 hl=2 l= 10 prim: OBJECT :Microsoft Commercial Code Signing
|
||||||
*/
|
*/
|
||||||
static u_char purpose_comm[] = {
|
const u_char purpose_comm[] = {
|
||||||
0x30, 0x0c,
|
0x30, 0x0c, 0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04,
|
||||||
0x06, 0x0a, 0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0x37, 0x02, 0x01, 0x16
|
0x01, 0x82, 0x37, 0x02, 0x01, 0x16
|
||||||
|
};
|
||||||
|
|
||||||
|
const u_char classid_page_hash[] = {
|
||||||
|
0xa6, 0xb5, 0x86, 0xd5, 0xb4, 0xa1, 0x24, 0x66,
|
||||||
|
0xae, 0x05, 0xa2, 0x17, 0xda, 0x8e, 0x60, 0xd6
|
||||||
};
|
};
|
||||||
|
|
||||||
static SpcSpOpusInfo *createOpus(const char *desc, const char *url)
|
static SpcSpOpusInfo *createOpus(const char *desc, const char *url)
|
||||||
@ -1448,10 +1453,11 @@ typedef enum {
|
|||||||
|
|
||||||
static SpcLink *get_obsolete_link(void)
|
static SpcLink *get_obsolete_link(void)
|
||||||
{
|
{
|
||||||
static const u_char obsolete[] = {
|
const u_char obsolete[] = {
|
||||||
0x00, 0x3c, 0x00, 0x3c, 0x00, 0x3c, 0x00, 0x4f, 0x00, 0x62,
|
0x00, 0x3c, 0x00, 0x3c, 0x00, 0x3c, 0x00, 0x4f,
|
||||||
0x00, 0x73, 0x00, 0x6f, 0x00, 0x6c, 0x00, 0x65, 0x00, 0x74,
|
0x00, 0x62, 0x00, 0x73, 0x00, 0x6f, 0x00, 0x6c,
|
||||||
0x00, 0x65, 0x00, 0x3e, 0x00, 0x3e, 0x00, 0x3e
|
0x00, 0x65, 0x00, 0x74, 0x00, 0x65, 0x00, 0x3e,
|
||||||
|
0x00, 0x3e, 0x00, 0x3e
|
||||||
};
|
};
|
||||||
SpcLink *link = SpcLink_new();
|
SpcLink *link = SpcLink_new();
|
||||||
link->type = 2;
|
link->type = 2;
|
||||||
@ -1462,11 +1468,6 @@ static SpcLink *get_obsolete_link(void)
|
|||||||
return link;
|
return link;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const u_char classid_page_hash[] = {
|
|
||||||
0xA6, 0xB5, 0x86, 0xD5, 0xB4, 0xA1, 0x24, 0x66,
|
|
||||||
0xAE, 0x05, 0xA2, 0x17, 0xDA, 0x8E, 0x60, 0xD6
|
|
||||||
};
|
|
||||||
|
|
||||||
static u_char *pe_calc_page_hash(char *indata, uint32_t header_size,
|
static u_char *pe_calc_page_hash(char *indata, uint32_t header_size,
|
||||||
int pe32plus, uint32_t sigpos, int phtype, int *rphlen)
|
int pe32plus, uint32_t sigpos, int phtype, int *rphlen)
|
||||||
{
|
{
|
||||||
@ -1609,7 +1610,7 @@ static int get_indirect_data_blob(u_char **blob, int *len, GLOBAL_OPTIONS *optio
|
|||||||
void *hash;
|
void *hash;
|
||||||
ASN1_OBJECT *dtype;
|
ASN1_OBJECT *dtype;
|
||||||
SpcIndirectDataContent *idc;
|
SpcIndirectDataContent *idc;
|
||||||
static const u_char msistr[] = {
|
const u_char msistr[] = {
|
||||||
0xf1, 0x10, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0xf1, 0x10, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46
|
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46
|
||||||
};
|
};
|
||||||
@ -1764,29 +1765,32 @@ int set_content_blob(PKCS7 *sig, PKCS7 *cursig)
|
|||||||
static int set_indirect_data_blob(PKCS7 *sig, BIO *hash, file_type_t type,
|
static int set_indirect_data_blob(PKCS7 *sig, BIO *hash, file_type_t type,
|
||||||
char *indata, GLOBAL_OPTIONS *options, FILE_HEADER *header)
|
char *indata, GLOBAL_OPTIONS *options, FILE_HEADER *header)
|
||||||
{
|
{
|
||||||
static u_char buf[64*1024];
|
|
||||||
u_char *p = NULL;
|
u_char *p = NULL;
|
||||||
int len = 0;
|
int len = 0;
|
||||||
|
u_char *buf = OPENSSL_malloc(SIZE_64K);
|
||||||
|
|
||||||
if (!get_indirect_data_blob(&p, &len, options, header, type, indata))
|
if (!get_indirect_data_blob(&p, &len, options, header, type, indata))
|
||||||
return 0; /* FAILED */
|
return 0; /* FAILED */
|
||||||
memcpy(buf, p, len);
|
memcpy(buf, p, len);
|
||||||
OPENSSL_free(p);
|
OPENSSL_free(p);
|
||||||
if (!set_signing_blob(sig, hash, buf, len))
|
if (!set_signing_blob(sig, hash, buf, len)) {
|
||||||
|
OPENSSL_free(buf);
|
||||||
return 0; /* FAILED */
|
return 0; /* FAILED */
|
||||||
|
}
|
||||||
|
OPENSSL_free(buf);
|
||||||
|
|
||||||
return 1; /* OK */
|
return 1; /* OK */
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t pe_calc_checksum(BIO *bio, FILE_HEADER *header)
|
static uint32_t pe_calc_checksum(BIO *bio, FILE_HEADER *header)
|
||||||
{
|
{
|
||||||
uint32_t checkSum = 0, size = 0;
|
uint32_t checkSum = 0, size = 0;
|
||||||
unsigned short *buf;
|
|
||||||
int nread;
|
int nread;
|
||||||
|
unsigned short *buf = OPENSSL_malloc(SIZE_64K);
|
||||||
|
|
||||||
/* recalculate the checksum */
|
/* recalculate the checksum */
|
||||||
buf = OPENSSL_malloc(65536); /* 2^16 */
|
|
||||||
(void)BIO_seek(bio, 0);
|
(void)BIO_seek(bio, 0);
|
||||||
while ((nread = BIO_read(bio, buf, 65536)) > 0) {
|
while ((nread = BIO_read(bio, buf, SIZE_64K)) > 0) {
|
||||||
unsigned short val;
|
unsigned short val;
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < nread / 2; i++) {
|
for (i = 0; i < nread / 2; i++) {
|
||||||
@ -3208,7 +3212,7 @@ static int msi_calc_MsiDigitalSignatureEx(MSI_PARAMS *msiparams, const EVP_MD *m
|
|||||||
static int pe_calc_digest(char *indata, const EVP_MD *md, u_char *mdbuf, FILE_HEADER *header)
|
static int pe_calc_digest(char *indata, const EVP_MD *md, u_char *mdbuf, FILE_HEADER *header)
|
||||||
{
|
{
|
||||||
BIO *bio = NULL;
|
BIO *bio = NULL;
|
||||||
static u_char bfb[16*1024*1024];
|
u_char *bfb;
|
||||||
EVP_MD_CTX *mdctx;
|
EVP_MD_CTX *mdctx;
|
||||||
uint32_t n, offset;
|
uint32_t n, offset;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
@ -3226,6 +3230,8 @@ static int pe_calc_digest(char *indata, const EVP_MD *md, u_char *mdbuf, FILE_HE
|
|||||||
memset(mdbuf, 0, EVP_MAX_MD_SIZE);
|
memset(mdbuf, 0, EVP_MAX_MD_SIZE);
|
||||||
bio = BIO_new_mem_buf(indata, offset);
|
bio = BIO_new_mem_buf(indata, offset);
|
||||||
(void)BIO_seek(bio, 0);
|
(void)BIO_seek(bio, 0);
|
||||||
|
|
||||||
|
bfb = OPENSSL_malloc(SIZE_16M);
|
||||||
|
|
||||||
BIO_read(bio, bfb, header->header_size + 88);
|
BIO_read(bio, bfb, header->header_size + 88);
|
||||||
EVP_DigestUpdate(mdctx, bfb, header->header_size + 88);
|
EVP_DigestUpdate(mdctx, bfb, header->header_size + 88);
|
||||||
@ -3255,6 +3261,7 @@ static int pe_calc_digest(char *indata, const EVP_MD *md, u_char *mdbuf, FILE_HE
|
|||||||
EVP_DigestUpdate(mdctx, bfb, len);
|
EVP_DigestUpdate(mdctx, bfb, len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
OPENSSL_free(bfb);
|
||||||
BIO_free(bio);
|
BIO_free(bio);
|
||||||
EVP_DigestFinal(mdctx, mdbuf, NULL);
|
EVP_DigestFinal(mdctx, mdbuf, NULL);
|
||||||
ret = 1; /* OK */
|
ret = 1; /* OK */
|
||||||
@ -3555,7 +3562,7 @@ static int pe_verify_header(char *indata, char *infile, uint32_t filesize, FILE_
|
|||||||
static void pe_modify_header(char *indata, FILE_HEADER *header, BIO *hash, BIO *outdata)
|
static void pe_modify_header(char *indata, FILE_HEADER *header, BIO *hash, BIO *outdata)
|
||||||
{
|
{
|
||||||
int len = 0, i;
|
int len = 0, i;
|
||||||
static char buf[64*1024];
|
char *buf = OPENSSL_malloc(SIZE_64K);
|
||||||
|
|
||||||
i = header->header_size + 88;
|
i = header->header_size + 88;
|
||||||
BIO_write(hash, indata, i);
|
BIO_write(hash, indata, i);
|
||||||
@ -3576,6 +3583,7 @@ static void pe_modify_header(char *indata, FILE_HEADER *header, BIO *hash, BIO *
|
|||||||
BIO_write(hash, buf, len);
|
BIO_write(hash, buf, len);
|
||||||
header->fileend += len;
|
header->fileend += len;
|
||||||
}
|
}
|
||||||
|
OPENSSL_free(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -3651,7 +3659,7 @@ static int cab_verify_header(char *indata, char *infile, uint32_t filesize, FILE
|
|||||||
static int cab_calc_digest(char *indata, const EVP_MD *md, u_char *mdbuf, FILE_HEADER *header)
|
static int cab_calc_digest(char *indata, const EVP_MD *md, u_char *mdbuf, FILE_HEADER *header)
|
||||||
{
|
{
|
||||||
BIO *bio;
|
BIO *bio;
|
||||||
static u_char bfb[16*1024*1024];
|
u_char *bfb;
|
||||||
EVP_MD_CTX *mdctx;
|
EVP_MD_CTX *mdctx;
|
||||||
uint32_t offset, coffFiles;
|
uint32_t offset, coffFiles;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
@ -3669,6 +3677,8 @@ static int cab_calc_digest(char *indata, const EVP_MD *md, u_char *mdbuf, FILE_H
|
|||||||
bio = BIO_new_mem_buf(indata, offset);
|
bio = BIO_new_mem_buf(indata, offset);
|
||||||
memset(mdbuf, 0, EVP_MAX_MD_SIZE);
|
memset(mdbuf, 0, EVP_MAX_MD_SIZE);
|
||||||
(void)BIO_seek(bio, 0);
|
(void)BIO_seek(bio, 0);
|
||||||
|
|
||||||
|
bfb = OPENSSL_malloc(SIZE_16M);
|
||||||
|
|
||||||
/* u1 signature[4] 4643534D MSCF: 0-3 */
|
/* u1 signature[4] 4643534D MSCF: 0-3 */
|
||||||
BIO_read(bio, bfb, 4);
|
BIO_read(bio, bfb, 4);
|
||||||
@ -3776,6 +3786,7 @@ static int cab_calc_digest(char *indata, const EVP_MD *md, u_char *mdbuf, FILE_H
|
|||||||
EVP_DigestUpdate(mdctx, bfb, l);
|
EVP_DigestUpdate(mdctx, bfb, l);
|
||||||
coffFiles += l;
|
coffFiles += l;
|
||||||
}
|
}
|
||||||
|
OPENSSL_free(bfb);
|
||||||
BIO_free(bio);
|
BIO_free(bio);
|
||||||
EVP_DigestFinal(mdctx, mdbuf, NULL);
|
EVP_DigestFinal(mdctx, mdbuf, NULL);
|
||||||
ret = 1; /* OK */
|
ret = 1; /* OK */
|
||||||
@ -3944,7 +3955,7 @@ static int cab_remove_file(char *indata, FILE_HEADER *header, uint32_t filesize,
|
|||||||
int i;
|
int i;
|
||||||
uint32_t tmp;
|
uint32_t tmp;
|
||||||
uint16_t nfolders, flags;
|
uint16_t nfolders, flags;
|
||||||
static char buf[64*1024];
|
char *buf = OPENSSL_malloc(SIZE_64K);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* u1 signature[4] 4643534D MSCF: 0-3
|
* u1 signature[4] 4643534D MSCF: 0-3
|
||||||
@ -3996,6 +4007,7 @@ static int cab_remove_file(char *indata, FILE_HEADER *header, uint32_t filesize,
|
|||||||
}
|
}
|
||||||
/* Write what's left - the compressed data bytes */
|
/* Write what's left - the compressed data bytes */
|
||||||
BIO_write(outdata, indata + i, filesize - header->siglen - i);
|
BIO_write(outdata, indata + i, filesize - header->siglen - i);
|
||||||
|
OPENSSL_free(buf);
|
||||||
|
|
||||||
return 0; /* OK */
|
return 0; /* OK */
|
||||||
}
|
}
|
||||||
@ -4004,7 +4016,7 @@ static void cab_modify_header(char *indata, FILE_HEADER *header, BIO *hash, BIO
|
|||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
uint16_t nfolders, flags;
|
uint16_t nfolders, flags;
|
||||||
static char buf[64*1024];
|
const char buf[] = {0x00, 0x00};
|
||||||
|
|
||||||
/* u1 signature[4] 4643534D MSCF: 0-3 */
|
/* u1 signature[4] 4643534D MSCF: 0-3 */
|
||||||
BIO_write(hash, indata, 4);
|
BIO_write(hash, indata, 4);
|
||||||
@ -4061,13 +4073,14 @@ static void cab_add_header(char *indata, FILE_HEADER *header, BIO *hash, BIO *ou
|
|||||||
int i;
|
int i;
|
||||||
uint32_t tmp;
|
uint32_t tmp;
|
||||||
uint16_t nfolders, flags;
|
uint16_t nfolders, flags;
|
||||||
static char buf[64*1024];
|
|
||||||
u_char cabsigned[] = {
|
u_char cabsigned[] = {
|
||||||
0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
|
0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
|
||||||
0xde, 0xad, 0xbe, 0xef, /* size of cab file */
|
0xde, 0xad, 0xbe, 0xef, /* size of cab file */
|
||||||
0xde, 0xad, 0xbe, 0xef, /* size of asn1 blob */
|
0xde, 0xad, 0xbe, 0xef, /* size of asn1 blob */
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
};
|
};
|
||||||
|
char *buf = OPENSSL_malloc(SIZE_64K);
|
||||||
|
memset(buf, 0, SIZE_64K);
|
||||||
|
|
||||||
/* u1 signature[4] 4643534D MSCF: 0-3 */
|
/* u1 signature[4] 4643534D MSCF: 0-3 */
|
||||||
BIO_write(hash, indata, 4);
|
BIO_write(hash, indata, 4);
|
||||||
@ -4120,6 +4133,7 @@ static void cab_add_header(char *indata, FILE_HEADER *header, BIO *hash, BIO *ou
|
|||||||
}
|
}
|
||||||
/* Write what's left - the compressed data bytes */
|
/* Write what's left - the compressed data bytes */
|
||||||
BIO_write(hash, indata + i, header->fileend - i);
|
BIO_write(hash, indata + i, header->fileend - i);
|
||||||
|
OPENSSL_free(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -4505,8 +4519,8 @@ static int add_unauthenticated_blob(PKCS7 *sig)
|
|||||||
u_char *p = NULL;
|
u_char *p = NULL;
|
||||||
int nid, len = 1024+4;
|
int nid, len = 1024+4;
|
||||||
/* Length data for ASN1 attribute plus prefix */
|
/* Length data for ASN1 attribute plus prefix */
|
||||||
char prefix[] = "\x0c\x82\x04\x00---BEGIN_BLOB---";
|
const char prefix[] = "\x0c\x82\x04\x00---BEGIN_BLOB---";
|
||||||
char postfix[] = "---END_BLOB---";
|
const char postfix[] = "---END_BLOB---";
|
||||||
STACK_OF(PKCS7_SIGNER_INFO) *signer_info = PKCS7_get_signer_info(sig);
|
STACK_OF(PKCS7_SIGNER_INFO) *signer_info = PKCS7_get_signer_info(sig);
|
||||||
|
|
||||||
if (!signer_info)
|
if (!signer_info)
|
||||||
@ -4535,8 +4549,10 @@ static int append_signature(PKCS7 *sig, PKCS7 *cursig, file_type_t type,
|
|||||||
GLOBAL_OPTIONS *options, MSI_PARAMS *msiparams, int *padlen, int *len, BIO *outdata)
|
GLOBAL_OPTIONS *options, MSI_PARAMS *msiparams, int *padlen, int *len, BIO *outdata)
|
||||||
{
|
{
|
||||||
u_char *p = NULL;
|
u_char *p = NULL;
|
||||||
static char buf[64*1024];
|
|
||||||
PKCS7 *outsig = NULL;
|
PKCS7 *outsig = NULL;
|
||||||
|
const char buf[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
if (type != FILE_TYPE_CAT && options->nest) {
|
if (type != FILE_TYPE_CAT && options->nest) {
|
||||||
if (cursig == NULL) {
|
if (cursig == NULL) {
|
||||||
@ -4592,7 +4608,9 @@ static int append_signature(PKCS7 *sig, PKCS7 *cursig, file_type_t type,
|
|||||||
static void update_data_size(file_type_t type, cmd_type_t cmd, FILE_HEADER *header,
|
static void update_data_size(file_type_t type, cmd_type_t cmd, FILE_HEADER *header,
|
||||||
int padlen, int len, BIO *outdata)
|
int padlen, int len, BIO *outdata)
|
||||||
{
|
{
|
||||||
static char buf[64*1024];
|
const char buf[] = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
if (type == FILE_TYPE_PE) {
|
if (type == FILE_TYPE_PE) {
|
||||||
if (cmd == CMD_SIGN || cmd == CMD_ADD || cmd == CMD_ATTACH) {
|
if (cmd == CMD_SIGN || cmd == CMD_ADD || cmd == CMD_ATTACH) {
|
||||||
@ -4814,8 +4832,9 @@ static int check_attached_data(file_type_t type, FILE_HEADER *header, GLOBAL_OPT
|
|||||||
|
|
||||||
static int get_file_type(char *indata, char *infile, file_type_t *type)
|
static int get_file_type(char *indata, char *infile, file_type_t *type)
|
||||||
{
|
{
|
||||||
static u_char pkcs7_signed_data[] = {
|
const u_char pkcs7_signed_data[] = {
|
||||||
0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x07, 0x02,
|
0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d,
|
||||||
|
0x01, 0x07, 0x02,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!memcmp(indata, "MSCF", 4)) {
|
if (!memcmp(indata, "MSCF", 4)) {
|
||||||
@ -4874,7 +4893,7 @@ static int read_password(GLOBAL_OPTIONS *options)
|
|||||||
{
|
{
|
||||||
char passbuf[4096];
|
char passbuf[4096];
|
||||||
int passfd, passlen;
|
int passfd, passlen;
|
||||||
static const u_char utf8_bom[] = {0xef, 0xbb, 0xbf};
|
const u_char utf8_bom[] = {0xef, 0xbb, 0xbf};
|
||||||
|
|
||||||
if (options->readpass) {
|
if (options->readpass) {
|
||||||
passfd = open(options->readpass, O_RDONLY);
|
passfd = open(options->readpass, O_RDONLY);
|
||||||
@ -5074,7 +5093,7 @@ static char *find_pvk_key(GLOBAL_OPTIONS *options)
|
|||||||
{
|
{
|
||||||
u_char magic[4];
|
u_char magic[4];
|
||||||
/* Microsoft Private Key format Header Hexdump */
|
/* Microsoft Private Key format Header Hexdump */
|
||||||
u_char pvkhdr[4] = { 0x1e, 0xf1, 0xb5, 0xb0 };
|
const u_char pvkhdr[4] = {0x1e, 0xf1, 0xb5, 0xb0};
|
||||||
char *pvkfile = NULL;
|
char *pvkfile = NULL;
|
||||||
BIO *btmp;
|
BIO *btmp;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user