7 Commits

Author SHA1 Message Date
906593fa6f Update NEWS for 2.0.5 release 2021-06-22 21:57:26 +02:00
6d15a47c09 Merge pull request #4 from pmai/fix/sbcl-bit-bash
Fix SBCL byte copy for newer SBCL interface #3
2021-06-22 21:52:15 +02:00
f8f8f2a079 Fix SBCL byte copy for newer SBCL interface #3
Might switch to defering to sb-md5 version of code shipped with SBCL
going forward, but this should fix the code base for now.
2021-06-22 21:46:30 +02:00
670b4aafa8 Merge pull request #5 from pmai/feature/github-actions-ci
Add initial support for Actions CI using roswell
2021-06-22 21:45:56 +02:00
649bdfa792 Add initial support for Actions CI using roswell 2021-06-22 21:23:54 +02:00
b1412600f6 Improve Travis CI for clisp/ecl, add banner 2018-02-24 00:24:35 +01:00
422e8baf75 Add Travis CI support 2018-02-24 00:15:05 +01:00
4 changed files with 51 additions and 5 deletions

38
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,38 @@
name: Common Lisp CI
on:
push:
pull_request:
branches: [ master ]
jobs:
test:
name: ${{ matrix.lisp }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
lisp: [sbcl-bin, clisp]
os: [ubuntu-latest, macOS-latest]
exclude:
# CLISP currently does not build on ubuntu due to readline7
- lisp: clisp
os: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Roswell
env:
LISP: ${{ matrix.lisp }}
run: |
curl -L https://raw.githubusercontent.com/roswell/roswell/master/scripts/install-for-ci.sh | sh
- name: Build and Run Tests
run: |
ros -e '(pushnew :md5-testing cl:*features*)
(ql:quickload "md5")
(unless (md5::test-rfc1321)
(uiop:quit 1))
(unless (md5::test-other)
(uiop:quit 1))'

6
NEWS
View File

@ -1,3 +1,9 @@
Release 2.0.5
=============
* Fix SBCL-specific sequence copying implementation to use better
suited internal interface.
Release 2.0.4 Release 2.0.4
============= =============

View File

@ -1,5 +1,7 @@
[![Build Status](https://github.com/pmai/md5/actions/workflows/ci.yml/badge.svg)](https://github.com/pmai/md5/actions/workflows/ci.yml)
This package implements The MD5 Message-Digest Algorithm, as defined This package implements The MD5 Message-Digest Algorithm, as defined
in RFC 1321 by R. Rivest, published April 1992. in [RFC 1321][] by R. Rivest, published April 1992.
It was originally written by Pierre R. Mai, with copious input from It was originally written by Pierre R. Mai, with copious input from
the cmucl-help mailing-list hosted at cons.org, in November 2001 and the cmucl-help mailing-list hosted at cons.org, in November 2001 and
@ -9,7 +11,7 @@ been provided by Christophe Rhodes, Alexey Dejneka, Nathan Froyd,
Andreas Fuchs, John Desoi, Dmitriy Ivanov, and Kevin M. Rosenberg, and Andreas Fuchs, John Desoi, Dmitriy Ivanov, and Kevin M. Rosenberg, and
have been reintegrated into this consolidated version by Pierre R. Mai. have been reintegrated into this consolidated version by Pierre R. Mai.
WARNING: The MD5 Message-Digest Algorithm has been compromised as a **WARNING:** The MD5 Message-Digest Algorithm has been compromised as a
cryptographically secure hash for some time, with known theoretical cryptographically secure hash for some time, with known theoretical
and practical attacks. Therefore use of this implemenation is only and practical attacks. Therefore use of this implemenation is only
recommended for legacy uses or uses which do not require a recommended for legacy uses or uses which do not require a
@ -20,3 +22,5 @@ cryptographically secure for all other uses.
This software is "as is", and has no warranty of any kind. The This software is "as is", and has no warranty of any kind. The
authors assume no responsibility for the consequences of any use of authors assume no responsibility for the consequences of any use of
this software. this software.
[RFC 1321]: https://tools.ietf.org/html/rfc1321

View File

@ -372,7 +372,7 @@ starting from `offset' into the given 16 word MD5 block."
block (* vm:vector-data-offset vm:word-bits) block (* vm:vector-data-offset vm:word-bits)
(* 64 vm:byte-bits)) (* 64 vm:byte-bits))
#+(and :sbcl :little-endian) #+(and :sbcl :little-endian)
(sb-kernel:ub8-bash-copy buffer offset block 0 64) (sb-kernel:%byte-blt buffer offset block 0 64)
#-(or (and :sbcl :little-endian) (and :cmu :little-endian)) #-(or (and :sbcl :little-endian) (and :cmu :little-endian))
(loop for i of-type (integer 0 16) from 0 (loop for i of-type (integer 0 16) from 0
for j of-type (integer 0 #.most-positive-fixnum) for j of-type (integer 0 #.most-positive-fixnum)
@ -397,8 +397,6 @@ starting from `offset' into the given 16 word MD5 block."
buffer (+ (* vm:vector-data-offset vm:word-bits) (* offset vm:byte-bits)) buffer (+ (* vm:vector-data-offset vm:word-bits) (* offset vm:byte-bits))
block (* vm:vector-data-offset vm:word-bits) block (* vm:vector-data-offset vm:word-bits)
(* 64 vm:byte-bits)) (* 64 vm:byte-bits))
#+(and :sbcl :little-endian)
(sb-kernel:ub8-bash-copy buffer offset block 0 64)
#-(or (and :sbcl :little-endian) (and :cmu :little-endian)) #-(or (and :sbcl :little-endian) (and :cmu :little-endian))
(loop for i of-type (integer 0 16) from 0 (loop for i of-type (integer 0 16) from 0
for j of-type (integer 0 #.most-positive-fixnum) for j of-type (integer 0 #.most-positive-fixnum)