Skip to content

Latest commit

 

History

History
24 lines (22 loc) · 1.15 KB

scratch.md

File metadata and controls

24 lines (22 loc) · 1.15 KB

TODO:

  1. Fix unsafe hex-to-bytes function
  2. Add Circle CI step for marginalia and deploy to pghale.com/cryptopals.html
  3. Redirect /cryptopals to /cryptopals.html
  4. Base64 algorithm: c. Swap 'unsafe' hex-to-bytes for a safer hex lookup (dict?)
  5. Roll your own bitCount function / Hamming weight fn (although hotspot calls a CPU instruction on Core processors :))
  6. Make everything lazy?
  7. Roll your own AES implementation
  8. Make 'implement repeating key XOR' a command line function.
  9. Make it a binary using GraalVM.
  10. Layer on clojure spec for the public fns.
  11. experiment with generative testing based on specs
  12. Profile with YourKit / VisualVM.
  13. This revealed that chi-square is a hotspot, as well as the basic division and multiplication fns. I think this is because many of the numbers get really large with that default value of 0.00001 for missing observations. Look into making that value smaller.

;; (t/deftest test-base64-to-str ;; (let [decoded "Man is distinguished, not only by his reason, but by" ;; encoded (.encode (Base64/getEncoder) (.getBytes decoded))] ;; (t/is (= decoded (s/base64-to-str encoded) ))))