db->description = be32toh(header.description);
db->license = be32toh(header.license);
- db->signature1_length = be32toh(header.signature1_length);
- db->signature2_length = be32toh(header.signature2_length);
+ db->signature1_length = be16toh(header.signature1_length);
+ db->signature2_length = be16toh(header.signature2_length);
// Read signatures
if (db->signature1_length) {
uint32_t pool_offset;
uint32_t pool_length;
- // Some padding
- char padding1[2];
-
// Signatures
- uint32_t signature1_length;
- uint32_t signature2_length;
+ uint16_t signature1_length;
+ uint16_t signature2_length;
char signature1[LOC_SIGNATURE_MAX_LENGTH];
char signature2[LOC_SIGNATURE_MAX_LENGTH];
// Add some padding for future extensions
- char padding2[32];
+ char padding[32];
};
struct loc_database_network_node_v1 {
static int loc_writer_create_signature(struct loc_writer* writer,
struct loc_database_header_v1* header, FILE* f, EVP_PKEY* private_key,
char* signature, size_t* length) {
- DEBUG(writer->ctx, "Signing database...\n");
+ DEBUG(writer->ctx, "Creating signature...\n");
// Read file from the beginning
rewind(f);
header.signature2_length = 0;
// Clear the padding
- memset(header.padding1, '\0', sizeof(header.padding1));
- memset(header.padding2, '\0', sizeof(header.padding2));
+ memset(header.padding, '\0', sizeof(header.padding));
int r;
off_t offset = 0;
// Copy the signatures into the header
if (writer->signature1_length) {
+ DEBUG(writer->ctx, "Copying first signature of %zu byte(s)\n",
+ writer->signature1_length);
+
memcpy(header.signature1, writer->signature1, writer->signature1_length);
- header.signature1_length = htobe32(writer->signature1_length);
+ header.signature1_length = htobe16(writer->signature1_length);
}
if (writer->signature2_length) {
+ DEBUG(writer->ctx, "Copying second signature of %zu byte(s)\n",
+ writer->signature1_length);
+
memcpy(header.signature2, writer->signature2, writer->signature2_length);
- header.signature2_length = htobe32(writer->signature2_length);
+ header.signature2_length = htobe16(writer->signature2_length);
}
// Write the header