core: Support building with OpenSSL for checksums
Add an OpenSSL backend to the checksum input stream, which is where we do a lot of checksumming (object commit, static deltas). The raw OpenSSL performance is [approximately double](https://gist.github.com/cgwalters/169349fd1c06fd4fb4d3a7ce33303222) on my laptop; not only does OpenSSL have e.g. hand-tuned x86_64 assembly, the current implementation uses the [Intel SHA extensions](https://en.wikipedia.org/wiki/Intel_SHA_extensions). Another reason to do this is I was idly thinking about adding [Curve25519](https://en.wikipedia.org/wiki/Curve25519) signatures (like e.g. Alpine does) instead of/in addition to GPG. The rationale for that is that GPG is pretty heavyweight, both in code footprint and the simple fact that EC keys are way smaller. I didn't benchmark ostree with this; we have bigger performance problems really like the fact we just malloc way too much. But, it's a step in the right direction I think in combination with the libcurl work where we're linking to openssl anyways. Closes: #738 Approved by: jlebon
This commit is contained in:
1 parent
c2f5a999bf
commit
df5cbc9be9
6 files changed
+110
-15
No files matched your search
@@ -1351,16 +1351,7 @@ void
|
||||
ostree_checksum_inplace_from_bytes (const guchar *csum,
|
||||
char *buf)
|
||||
{
|
||||
static const gchar hexchars[] = "0123456789abcdef";
|
||||
guint i, j;
|
||||
|
||||
for (i = 0, j = 0; i < OSTREE_SHA256_DIGEST_LEN; i++, j += 2)
|
||||
{
|
||||
guchar byte = csum[i];
|
||||
buf[j] = hexchars[byte >> 4];
|
||||
buf[j+1] = hexchars[byte & 0xF];
|
||||
}
|
||||
buf[j] = '\0';
|
||||
ot_bin2hex (buf, csum, OSTREE_SHA256_DIGEST_LEN);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user