[Microid] MicroID Python code + comments on the spec

Peter Saint-Andre stpeter at jabber.org
Wed Jan 3 15:40:52 EST 2007


Eran Sandler wrote:
> Hey all,
> 
> Attached is a simple function implementation of microid in Python (after
> seeing the Java implementation I had to do something ;-) ).
> 
> This sample is for Python 2.4 or so (in 2.5 the SHA API I'm using is
> deprecated, so when I'll install it I'll submit a Python 2.5 valid sample).
> 
> It also contains a sample that you can run it by itself (and not include it
> in a project). Run by specifying:
> python microid.py firsturi seconduri
> 
> Where firsturi is the first uri you want to encode and the second is the
> second.
> 
> For example:
> python microid.py xmpp:stpeter at jabber.org https://www.xmpp.net/
> 
> This will produce (with the '======' lines):
> 
> ========================================================================
> first uri          : xmpp:stpeter at jabber.org
> second uri         : https://www.xmpp.net/
> 
> microid hash value : 6196ea6709be2a4cbdf2bc0cfaeac491f2fb8921
> 
> microid            :
> xmpp+https:sha1:6196ea6709be2a4cbdf2bc0cfaeac491f2fb8921
> ========================================================================
> 
> For the value of the microid printed, it will try to extract the protocol
> used form the uris given in the input.
> 
> This also brings me to another point. I might be wrong on this, but I double
> checked the hash values and the sample on the spec has the wrong hash
> values. The ones I've listed above is the right ones (as far as I could
> tell).
> 
> So it would be good to correct the sample so that people will be able to
> verify that their sha1 hashing (at least for now) is working well.

Here is how I generated the examples:

1. Create a file ent1.txt whose only content is:

xmpp:stpeter at jabber.org

2. Run the following command:

openssl dgst -sha1 ent1.txt

3. Get the following output:

6438d67faaaf7803f4dd47df5e9406cd0bb232fe

4. Create a file ent2.txt whose only content is:

https://www.xmpp.net/

5. Run the following command:

openssl dgst -sha1 ent2.txt

6. Get the following output:

d2d7361de77be843f0480000e09619ba56142ad3

7. Create a file inputs.txt whose content is a concatenation of the two 
hashes:

6438d67faaaf7803f4dd47df5e9406cd0bb232fed2d7361de77be843f0480000e09619ba56142ad3

8. Run the following command:

openssl dgst -sha1 inputs.txt

9. Get the following output:

bd3f7a2cea6e6013067293d9efb11e7b0ece829e

Which seems to follow the generation method described at 
http://microid.org/microid.html#generation

But I freely admit that I may be missing something. :-)

Peter

-- 
Peter Saint-Andre
Jabber Software Foundation
http://www.jabber.org/people/stpeter.shtml

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 7358 bytes
Desc: S/MIME Cryptographic Signature
Url : http://lists.ibiblio.org/pipermail/microid/attachments/20070103/3b21d68b/attachment.bin 


More information about the Microid mailing list