pki_gcrypt: Add a little more ASN1 infrastructure

* src/pki_gcrypt.c (ASN1_OCTET_STRING): New macro.
(ASN1_OBJECT_IDENTIFIER): Likewise.
(asn1_check_tag): New function.

Signed-off-by: Justus Winter <justus@g10code.com>
Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
This commit is contained in:
Justus Winter
2016-05-02 16:00:23 +02:00
committed by Andreas Schneider
parent 85bcfab719
commit 3c2ea78a09

View File

@@ -50,6 +50,8 @@
#define MAX_PASSPHRASE_SIZE 1024
#define ASN1_INTEGER 2
#define ASN1_BIT_STRING 3
#define ASN1_OCTET_STRING 4
#define ASN1_OBJECT_IDENTIFIER 6
#define ASN1_SEQUENCE 48
#define PKCS5_SALT_LEN 8
@@ -228,6 +230,19 @@ static int asn1_check_sequence(ssh_buffer buffer) {
return 1;
}
static int asn1_check_tag(ssh_buffer buffer, unsigned char tag) {
unsigned char tmp;
uint32_t len;
len = ssh_buffer_get_data(buffer, &tmp, 1);
if (len == 0 || tmp != tag) {
return 0;
}
(void) asn1_get_len(buffer);
return 1;
}
static int passphrase_to_key(char *data, unsigned int datalen,
unsigned char *salt, unsigned char *key, unsigned int keylen) {
MD5CTX md;