On 07/07/2017 09:53 AM, Markus Armbruster wrote:
> Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> writes:
> 
>> 07.07.2017 12:00, Markus Armbruster wrote:
>>> "Daniel P. Berrange" <berra...@redhat.com> writes:
>>>
>>>> On Fri, Jul 07, 2017 at 10:05:22AM +0200, Markus Armbruster wrote:
>>>>> Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> writes:
>>>>>
>>>>>> Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com>
>>>>>> ---
>>>>>>   block/dirty-bitmap.c         |  5 +++++
>>>>>>   blockdev.c                   | 25 +++++++++++++++++++++++++
>>>>>>   include/block/dirty-bitmap.h |  1 +
>>>>>>   include/qemu/hbitmap.h       |  8 ++++++++
>>>>>>   qapi/block-core.json         | 27 +++++++++++++++++++++++++++
>>>>>>   tests/Makefile.include       |  2 +-
>>>>>>   util/hbitmap.c               | 11 +++++++++++
>>>>>>   7 files changed, 78 insertions(+), 1 deletion(-)
>>>>> [...]
>>>>>> diff --git a/qapi/block-core.json b/qapi/block-core.json
>>>>>> index 5c42cc7790..6ad8585400 100644
>>>>>> --- a/qapi/block-core.json
>>>>>> +++ b/qapi/block-core.json
>>>>>> @@ -1644,6 +1644,33 @@
>>>>>>     'data': 'BlockDirtyBitmap' }
>>>>>>     ##
>>>>>> +# @BlockDirtyBitmapSha256:
>>>>>> +#
>>>>>> +# SHA256 hash of dirty bitmap data
>>>>>> +#
>>>>>> +# @sha256: ASCII representation of SHA256 bitmap hash
>>>>> Spell it SHA-256, please.  The member name @sha256 can stay.
>>>>>
>>>>> SHA-256 is 256 binary bits.  Please specify how they are represented in
>>>>> ASCII.  It better be base64 (RFC 4648), because we use that elsewhere.
>>>> It is filled later in this patch using qcrypto_hash_digest, so it is just
>>>> a hex string representing the hash, not base64. For the latter you can
>>>> use qcrypto_hash_base64
>>> I got two points:
>>>
>>> 1. Whatever encoding we use, it needs to be documented.
>>>
>>> 2. The fewer binary -> ASCII encodings we use, the better.  We already
>>> use base64.
>>
>>
>> ASCII format for check sum is more common as it is more readable. It
>> is used in the internet to check downloads, it is used by standard
>> utility sha256sum. So, it may be better for the monitor.
>>
>> However, if it is needed, I can make a follow-up patch, it is very
>> easy, just s/qcrypto_hash_digest/qcrypto_hash_base64/ in
>> util/hbitmap.c. iotest 165 - the only user of the feature - doesn't
>> need any changes.
> 
> If the is a standard way to represent SHA-256 in ASCII, use it.
> 
> Whatever you use, document it clearly in the QAPI schema.
> 

I... should we, though? It's a debug interface for testing only,
basically. Couldn't think of a better way to test it, and people
demanded tests.

How's this for documentation:

"The hash will be in an arbitrary format that changes every time you
look away from this specification. Any similarity, real or imagined, to
a canonical SHA-256 ASCII string is purely coincidental."

Basically, I would actually rather go out of my way to obfuscate this
command, not document it...

Maybe that's wrong-headed of me, but I still maintain that it's not
terribly important because I'd rather people never, ever try to use this
in production.

Reply via email to