Starting with tag: [TAG 2.0.3 dominic.steinitz@blueyonder.co.uk**20050828171642] [Fix bug where plaintext that was too long was being converted to a very long integer. dominic.steinitz@blueyonder.co.uk**20051204120314 This was before the integer was checked to see if it is too big. Of course this works but takes a very long time. Now we do a crude check to ensure that it makes sense to convert the octets to an integer. ] [Add PKCS1v1.5 support and an example for verification of signatures. dominic.steinitz@blueyonder.co.uk**20051204172258] [Remove junk. dominic.steinitz@blueyonder.co.uk**20051213153330] [Add support for CHOICE. dominic.steinitz@blueyonder.co.uk**20051213153401] [Start tests for CHOICE. dominic.steinitz@blueyonder.co.uk**20051213153418] [Add some notes on the encoding for NULL in a CHOICE. dominic.steinitz@blueyonder.co.uk**20051213153857] [The start of support for attribute certificates. dominic.steinitz@blueyonder.co.uk**20051213155305] [Beginning of decoding of CHOICE. dominic.steinitz@blueyonder.co.uk**20051214130001 Explicit types should typecheck ok but they won't decode ok. We need to add tests for implicit and explicit alternatives. ] [Typecheck the holder of an attribute certificate. dominic.steinitz@blueyonder.co.uk**20051214130149 Provided the right option is chosen for the holder (entityName). ] [Return the whole element when typechecking a reference. dominic.steinitz@blueyonder.co.uk**20051217131210 Typechecking a reference returns the abstract BER representation of the referenced element. This is now the whole element so that decoding works correctly. For example, in CHOICE, if we discard the tag then we won't now which alternative to decode. ] [Decode EXPLICIT referenced type. dominic.steinitz@blueyonder.co.uk**20051217131529] [More tests. dominic.steinitz@blueyonder.co.uk**20051217131749] [Notes on what needs fixing. dominic.steinitz@blueyonder.co.uk**20051217131847 1. Real errors in choice. At the moment, all errors get treated as a trigger to try the next alternative. +2. Typechecking a reference returns the abstract BER representation of the referenced element. Should this be the whole element? FIXED 3. SEQUENCE elements can be IMPLICIT or EXPLICIT. Currently all are treated as IMPLICIT because of k (Regular (mn :>: (tv :@: td)):as) (bv:bvs) = do foo <- lift $ case tv of Nothing -> tc td bv Just v -> case mn of Nothing -> tc ("" ::= AbsRef Context v Implicit td) bv Just name -> tc (name ::= AbsRef Context v Implicit td) bv Handling IMPLICIT / EXPLICIT correctly for SEQUENCE will break all definitions so not to be lightly undertaken. X509, PKCS8 and Attribute Certificate typechecking all works even with this deficiency so this will be left until decoding is fixed. 5. Decoding no longer works. ] [Handle decoding for OPTIONAL. dominic.steinitz@blueyonder.co.uk**20051217171313] [Modify X509 to use full reference types in decoding. dominic.steinitz@blueyonder.co.uk**20051217193856] [Remove BERTest junk from AttributeCertificate. dominic.steinitz@blueyonder.co.uk**20051218161726] [Add more of the pieces for attribute certs. dominic.steinitz@blueyonder.co.uk**20051218161841] [Add support for modifying tag values and types for CHOICE. dominic.steinitz@blueyonder.co.uk**20051218162003] [Decode other forms of CHOICE. dominic.steinitz@blueyonder.co.uk**20051224110525] [Rename Name constructor. dominic.steinitz@blueyonder.co.uk**20051224110604] [Start of decoding for Holder. dominic.steinitz@blueyonder.co.uk**20051224112206] [Accessor functions for manipulating e.g. CHOICE. dominic.steinitz@blueyonder.co.uk**20051224112239] [Start of decoding for Holder. dominic.steinitz@blueyonder.co.uk**20051226080218] [Decode GeneralName. dominic.steinitz@blueyonder.co.uk**20051226080855] [Use the intermediate type HolderGeneralNames. dominic.steinitz@blueyonder.co.uk**20051226091201] [Remove commented out code now in ASN1. dominic.steinitz@blueyonder.co.uk**20051226091450] [Remove debug statements from BER. dominic.steinitz@blueyonder.co.uk**20051226091535] [Support AttCertIssuer. dominic.steinitz@blueyonder.co.uk**20051226103256] [Put ASN.1 Holder definition near Haskell definition. dominic.steinitz@blueyonder.co.uk**20051226103355] [Start support for signature. dominic.steinitz@blueyonder.co.uk**20051226103445] [Temporarily comment out debug info. dominic.steinitz@blueyonder.co.uk**20051226103513] [Now support signature. dominic.steinitz@blueyonder.co.uk**20051226103859] [Bug typechecking AttCertIssuer. dominic.steinitz@blueyonder.co.uk**20051226120554 We currently return Nothing for a valid IssuerSerial. ] [IssuerID is now optional as the spec says. dominic.steinitz@blueyonder.co.uk**20051226140136] [More tests for types used in attribute certificates. dominic.steinitz@blueyonder.co.uk**20051226140313] [Always treat components in sequences as IMPLICIT. dominic.steinitz@blueyonder.co.uk**20051226140435] [Turn off debug information. dominic.steinitz@blueyonder.co.uk**20051226140545] [Support AttCertValidityPeriod. dominic.steinitz@blueyonder.co.uk**20051227090452] [Start of embedded ANY DEFINED BY. dominic.steinitz@blueyonder.co.uk**20051227214726] [Typecheck more complex forms of ANY DEFINED BY. dominic.steinitz@blueyonder.co.uk**20060102095428] [Start of decoding for Attributes. dominic.steinitz@blueyonder.co.uk**20060108212318 Also support exemptionRole & replace tc with typeCheck. ] [Major change. Typechecking now returns a type as well as the checked encoding. dominic.steinitz@blueyonder.co.uk**20060112175743 We can now typecheck definitions like the second version of Attribute below. In addition, decoding is much simplified. We should be able to remover replaceRef entirely and also having to "unpeel" abstract definitions during decoding. One step should be to produce tests with HUnit from the tests in AttributeCertificate.hs so that they can be built into the test suite (BERTest.hs). This is invalid ASN.1 even though it comes from RFC 3281. Attribute ::= SEQUENCE { type AttributeType, values SET OF AttributeValue -- at least one value is required } AttributeType ::= OBJECT IDENTIFIER AttributeValue ::= ANY DEFINED BY AttributeType This is also invalid but it should be easy to support typechecking of it. This is also invalid but it should be easy to support typechecking of it. Attribute ::= SEQUENCE { type AttributeType, values SET OF ANY DEFINED BY type, -- at least one value is required } ] [Finish decoding AttributeCertificate and start tidy up. dominic.steinitz@blueyonder.co.uk**20060112184114] [Restructure code in AttributeCertificate.hs into appropriate modules. dominic.steinitz@blueyonder.co.uk**20060113093531] [Move more definitions into AttributeCertificateDefinitions.hs. dominic.steinitz@blueyonder.co.uk**20060113135822] [Remove junk comment. dominic.steinitz@blueyonder.co.uk**20060113144211] [Start new HUnit tests and get exports / imports right. dominic.steinitz@blueyonder.co.uk**20060114084428] [Update haddock documentation. dominic.steinitz@blueyonder.co.uk**20060114084557] [Formalise an existing test using HUnit. dominic.steinitz@blueyonder.co.uk**20060114103537] [Add more HUnit tests and remove more junk. dominic.steinitz@blueyonder.co.uk**20060114133440] [More HUnit tests and more junk removal. dominic.steinitz@blueyonder.co.uk**20060115114424] [Another HUnit test and junk removal. dominic.steinitz@blueyonder.co.uk**20060115135440] [Add another HUnit test and remove junk. dominic.steinitz@blueyonder.co.uk**20060115144448] [Finish HUnit tests in BERTest2. dominic.steinitz@blueyonder.co.uk**20060115190749 The next step is to add them into BERTest. First BERTest needs to be rationalised. ] [Start tidy up of extra tests in BERTest.hs. dominic.steinitz@blueyonder.co.uk**20060121133118] [Tidy up HUnit tests. dominic.steinitz@blueyonder.co.uk**20060122154457] [Add debugging statements. dominic.steinitz@blueyonder.co.uk**20060122154545] [(Much) simplified decoding using the new type checker function. dominic.steinitz@blueyonder.co.uk**20060128095606] [Produce better error message and amend test for this error. dominic.steinitz@blueyonder.co.uk**20060129160219] [Another HUnit test. dominic.steinitz@blueyonder.co.uk**20060129164045] [Handle DEFAULT (again but it still needs doing properly). dominic.steinitz@blueyonder.co.uk**20060129164224] [Use the new decode in the X.509 example. dominic.steinitz@blueyonder.co.uk**20060129164340] [Use the new decode in the X.509 example. dominic.steinitz@blueyonder.co.uk**20060129164426] [Test for EXPLICIT CHOICE now works. dominic.steinitz@blueyonder.co.uk**20060204152416] [Modify decode fo AttributeCertificateDefinitions and InformationFramework. dominic.steinitz@blueyonder.co.uk**20060204152525 So that they work with the new decoding framework. ] [Modify PKCS8Example to work with the new typechecker and decoder. dominic.steinitz@blueyonder.co.uk**20060204152733] [Start tidy up of pretty printing attribute cert example. dominic.steinitz@blueyonder.co.uk**20060212071733] [More pretty printing progress for attribute cert example. dominic.steinitz@blueyonder.co.uk**20060212090000] [More pretty printing tidying up. dominic.steinitz@blueyonder.co.uk**20060212100450] [All examples to use the new tc. dominic.steinitz@blueyonder.co.uk**20060303105321] [Remove all references to tc and use typeCheck. dominic.steinitz@blueyonder.co.uk**20060304211512] [Replace ALL references to tc! dominic.steinitz@blueyonder.co.uk**20060304212128] [Start of generic hex formatting functions. NB Experimental! dominic.steinitz@blueyonder.co.uk**20060312134137] [An attribute certficate to test against. dominic.steinitz@blueyonder.co.uk**20060312135231] [Define the functions to be exported. dominic.steinitz@blueyonder.co.uk**20060312173459] [Replace $ by (.). dominic.steinitz@blueyonder.co.uk**20060312182218] [Complete prettyprint of attribute certs and use the generic "hexdump" (ppHex). dominic.steinitz@blueyonder.co.uk**20060318104855] [Start amending documentation and cabal file. dominic.steinitz@blueyonder.co.uk**20060318153324] [Import notes on digital signing with openssl. dominic.steinitz@blueyonder.co.uk**20060319141003] [Continue updating user guide after restructure. dominic.steinitz@blueyonder.co.uk**20060325112718] [Name changes for hexdump function. dominic.steinitz@blueyonder.co.uk**20060326184011] [More updates to the user guide. dominic.steinitz@blueyonder.co.uk**20060326184059 To reflect the new version. ] [Move hexdump to an appropriate point in the hierarchy. dominic.steinitz@blueyonder.co.uk**20060326184314] [Use hexdump from the right place in the hierarchy. dominic.steinitz@blueyonder.co.uk**20060326184933] [Haddock information for Codec.Text.Raw dominic.steinitz@blueyonder.co.uk**20060326185659] [Spelling correction. dominic.steinitz@blueyonder.co.uk**20060326185732] [Update copyright information. dominic.steinitz@blueyonder.co.uk**20060401151654] [Fix haddock problems. dominic.steinitz@blueyonder.co.uk**20060401155223] [Add new modules into the .cabal file. dominic.steinitz@blueyonder.co.uk**20060401155248] [Add cabal instructions to build PKCS8Example. dominic.steinitz@blueyonder.co.uk**20060401162638] [Update versions, copyright and .cabal synopsis. dominic.steinitz@blueyonder.co.uk**20060414151216] [TAG 3.0.1 dominic.steinitz@blueyonder.co.uk**20060414151321] [Tidy up PKCS1v1.5. dominic.steinitz@blueyonder.co.uk**20060414163607] [TAG 3.0.2 dominic.steinitz@blueyonder.co.uk**20060414174618] [Version numbers but they're wrong :-( dominic.steinitz@blueyonder.co.uk**20060414174625] [Tie version numbers with tag. dominic.steinitz@blueyonder.co.uk**20060414174747] [Jun Mukai's rewrite of SHA1. dominic.steinitz@blueyonder.co.uk**20060709095438] [Test to see if size_split == i2osp. dominic.steinitz@blueyonder.co.uk**20060709104026] [Replace size_split by i2osp. dominic.steinitz@blueyonder.co.uk**20060709104347] [Remove size_split entirely. dominic.steinitz@blueyonder.co.uk**20060709104804] [rename of directory because of typo mukai@jmuk.org**20060710105109] [ByteString-ize of many functions mukai@jmuk.org**20060712105353] [write test cases mukai@jmuk.org**20060712105417] [add strictness to ABCDE for performance reason mukai@jmuk.org**20060712105526] [add efficiency by trivial modifications mukai@jmuk.org**20060713053906] [fix up types mukai@jmuk.org**20060713060412] [add indentation for Test mukai@jmuk.org**20060713060501] [New Data.Digest.SHA2 module Russell O'Connor **20060709151954 Implements SHA-256, SHA-384, SHA-512, and SHA-224 as defined in FIPS 180-2 . ] [Wrappers for SHA2 Russell O'Connor **20060709152117] [fixed lost character in k_256 Russell O'Connor **20060709154958] [Restructure to separate out core functions. dominic.steinitz@blueyonder.co.uk**20060722090116 The core functions are in SHA1.hs and the functions, e.g., to turn bytes into their hex character representation are in SHA1Utils.hs. ] [Apply Spencer Janssen's patch to Jun Mukai's mod. dominic.steinitz@blueyonder.co.uk**20060722124617 Spencer supplied a performance improvement patch for SHA1Aux. Jun Mukai restructured SHA1 to digest in steps rather than all in one go and also improved the performance. As far as can see the performance improvements are the same except for this change that Spencer made. ] [Add a more general hex dump function. dominic.steinitz@blueyonder.co.uk**20060723102601] [Get ready to replace the original SHA1 and remove SHA1Aux. dominic.steinitz@blueyonder.co.uk**20060723102637] [Replace the original SHA1 by the new improved version. dominic.steinitz@blueyonder.co.uk**20060723103014] [Remove SHA1Aux as all the code is now in SHA1. dominic.steinitz@blueyonder.co.uk**20060723103902] [Tests for SHA1. dominic.steinitz@blueyonder.co.uk**20060723103945] [Update cabal file to reflect restructure and new dependency on fps (ByteString). dominic.steinitz@blueyonder.co.uk**20060723105110] [Taral's simplification Russell O'Connor **20060709190644] [Data.Array not needed. Russell O'Connor **20060711163131] [HUnit tests for SHA-2 Russell O'Connor **20060724125856] [added SHA2 to cabal info Russell O'Connor **20060724130414] [Excise ASN1 which will be put in a separate package dominic.steinitz@blueyonder.co.uk**20070110160939] [More SHA1 test vectors dominic.steinitz@blueyonder.co.uk**20070112103257] [Use lazy bytestrings and open file as binary dominic.steinitz@blueyonder.co.uk**20070114111235 Lazy bytestrings use Int64 so it was better to modify some functions rather than just use fromIntegral everywhere. Opening the file as binary means things will work on windows. However this function and the use of openFile / openBinaryFile will be deprecated once some performance tests verify that lazy bytestrings mean that we don't consume an ever increasing amount of memory. ] [Complete re-write of SHA1 to follow the algorithm in a haskellish way. dominic.steinitz@blueyonder.co.uk**20070331081806] [Remove the temporary JunMukai directory. dominic.steinitz@blueyonder.co.uk**20070331094440] [Update SHA1 test for new SHA1. dominic.steinitz@blueyonder.co.uk**20070401072537 Note that Word160 should be a temporary addition until LargeWord is working properly. ] [These extra Words are defined in the file and then not exported. Added them to the export list. matthew@wellquite.org**20070331162337] [TAG 4.0.1 dominic.steinitz@blueyonder.co.uk**20070401074619] [Get RSATest to compile with the new definition of hash in SHA1. dominic.steinitz@blueyonder.co.uk**20070406131003] [Update documentation. dominic.steinitz@blueyonder.co.uk**20070406131046] [Changes to make haddock work. dominic.steinitz@blueyonder.co.uk**20070406165415] [Update version numbers prior to tagging for release. dominic.steinitz@blueyonder.co.uk**20070406165822] [TAG 4.0.2 dominic.steinitz@blueyonder.co.uk**20070406165848] [Really get the version number right. dominic.steinitz@blueyonder.co.uk**20070407172114] [TAG 4.0.3 dominic.steinitz@blueyonder.co.uk**20070407172152] [Make Data.LargeWord types usable in ghci. Bryan O'Sullivan **20070906044222] [Improve SHA-1 performance. Bryan O'Sullivan **20070906044313] [Add a few SHA1 convenience functions. Bryan O'Sullivan **20070906044341] [Added HMAC (FIPS PUB 198), and tests for HMAC-SHA1. Greg Heartsfield **20070918024107] [Added HMAC-MD5 test vectors. Greg Heartsfield **20070918051845] [make the .cabal file compatible with base >= 3 Andrea Vezzosi **20071203153927] [add Bubble Babble binary encoding John Meacham **20080110011350] [add TEA symmetric encryption algorithm John Meacham **20080110170626] [Remove Base64 (now provided elsewhere) and dominic.steinitz@blueyonder.co.uk**20080112134039 update version number / documentation. ] [fmt cabal gwern0@gmail.com**20080509221844] [.cabal: +synopsis, better desc, build-type, tested-with gwern0@gmail.com**20080509221858] [don't forget homepage gwern0@gmail.com**20080509222444] [./CryptoHomePage.html: if they want darcs, don't constrict the version gwern0@gmail.com**20080509222510] [let's link to hackage in the hompage gwern0@gmail.com**20080509223351] [+category gwern0@gmail.com**20080509223417] [let's make the homepage validate; link to hackage package; and add some useful hyperlinks gwern0@gmail.com**20080509230044] [isn't using javascript for a mailto link kind of silly? gwern0@gmail.com**20080509230357] [anti-email harvester javascript on home page. dominic.steinitz@blueyonder.co.uk**20080511132521] [Fixed typo in haddock doc for HMAC-MD5. Greg Heartsfield **20081018155854] [Exporting AESKey; using AESKeyIndirection to prevent other implementations michael@snoyman.com**20081112161003 Ignore-this: c070ddf66bc66fa62bc8120766818a12 ]