<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
<link rel="self" type="application/atom+xml" href="https://forum.yubico.com/feed.php?f=8&amp;t=364" />

<title>Yubico Forum</title>
<subtitle>...visit our web-store at</subtitle>
<link href="https://forum.yubico.com/index.php" />
<updated>2009-08-08T06:22:52+01:00</updated>

<author><name><![CDATA[Yubico Forum]]></name></author>
<id>https://forum.yubico.com/feed.php?f=8&amp;t=364</id>
<entry>
<author><name><![CDATA[bmeredyk]]></name></author>
<updated>2009-08-08T06:22:52+01:00</updated>
<published>2009-08-08T06:22:52+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=364&amp;p=1646#p1646</id>
<link href="https://forum.yubico.com/viewtopic.php?t=364&amp;p=1646#p1646"/>
<title type="html"><![CDATA[Re: New Python yubikey_auth project]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=364&amp;p=1646#p1646"><![CDATA[
Made a minor update today - you can use without providing your api key now if you really want to (not sure why you would, but hey).  Still need to get yourself a client id though  - that seems to be required by Yubico.  Included BSD license in file now to make licensing clear for everyone.<br /><br /><!-- m --><a class="postlink" href="http://code.google.com/p/python-yubikey-auth/downloads/list">http://code.google.com/p/python-yubikey ... loads/list</a><!-- m --><p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=744">bmeredyk</a> — Sat Aug 08, 2009 6:22 am</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[bmeredyk]]></name></author>
<updated>2009-08-02T06:27:19+01:00</updated>
<published>2009-08-02T06:27:19+01:00</published>
<id>https://forum.yubico.com/viewtopic.php?t=364&amp;p=1609#p1609</id>
<link href="https://forum.yubico.com/viewtopic.php?t=364&amp;p=1609#p1609"/>
<title type="html"><![CDATA[New Python yubikey_auth project]]></title>

<content type="html" xml:base="https://forum.yubico.com/viewtopic.php?t=364&amp;p=1609#p1609"><![CDATA[
I just got my first Yubikey and of course had to play with it. Since I've been experimenting with webapps in python I figured I might as well figure out how to verify a OTP in python. Sure there are a couple of other python libraries out there, but none of them supported validating against the HMAC signatures, so I wrote one of my own.  The documentation on <!-- m --><a class="postlink" href="http://yubico.com/developers/api/">http://yubico.com/developers/api/</a><!-- m --> was a bit harder to understand than it needed to be so I'm sharing my implementation at <!-- m --><a class="postlink" href="http://code.google.com/p/python-yubikey-auth/">http://code.google.com/p/python-yubikey-auth/</a><!-- m --><br /><br />A couple of things about validating HMAC signatures that I learned in the process and that others trying to do their own implementations might find helpful:<br /><br /><ul><li>The API Key that you get from <!-- m --><a class="postlink" href="https://api.yubico.com/get-api-key/">https://api.yubico.com/get-api-key/</a><!-- m --> is base64 encoded - before you use it to generate or check signatures you need to decode it! This wasn't obvious to me and I wasted a lot of time because of this.</li><li> The API docs talk about key value pairs and the keys needing to be in alphabetical order when verifying the signature. When explaining the procedure for generating signatures they keep talking about keys a, b &amp; c but in reality the keys you care about are &quot;info&quot; (not always there), &quot;status&quot; and &quot;t&quot;.  (Keys &quot;a&quot;, &quot;b&quot;, and &quot;c&quot; aren't ever used anytime in the whole process so why even mention them!)</li></ul><p>Statistics: Posted by <a href="https://forum.yubico.com/memberlist.php?mode=viewprofile&amp;u=744">bmeredyk</a> — Sun Aug 02, 2009 6:27 am</p><hr />
]]></content>
</entry>
</feed>