introducing sha-256 checksum support (#625)

introducing sha-256 checksum support
This commit is contained in:
Gabor Aranyossy 2017-08-04 16:21:01 +02:00 committed by Alexandre Archambault
parent 56b6f57f96
commit dd3e8be410
9 changed files with 20 additions and 8 deletions

View File

@ -871,8 +871,8 @@ object Cache {
parseChecksumLine(lines) orElse parseChecksumAlternative(lines)
}
// matches md5 or sha1
private val checksumPattern = Pattern.compile("^[0-9a-f]{32}([0-9a-f]{8})?")
// matches md5 or sha1 or sha-256
private val checksumPattern = Pattern.compile("^[0-9a-f]{32}([0-9a-f]{8})?([0-9a-f]{24})?")
private def findChecksum(elems: Seq[String]): Option[BigInteger] =
elems.collectFirst {

View File

@ -267,7 +267,7 @@ object TermDisplay {
.toVector
.filter {
case (url, _) =>
!url.endsWith(".sha1") && !url.endsWith(".md5") && !url.endsWith("/")
!url.endsWith(".sha1") && !url.endsWith(".sha256") && !url.endsWith(".md5") && !url.endsWith("/")
}
.sortBy { case (url, _) => url }

View File

@ -24,7 +24,8 @@ object Repository {
def withDefaultChecksums: Artifact =
underlying.copy(checksumUrls = underlying.checksumUrls ++ Seq(
"MD5" -> (underlying.url + ".md5"),
"SHA-1" -> (underlying.url + ".sha1")
"SHA-1" -> (underlying.url + ".sha1"),
"SHA-256" -> (underlying.url + ".sha256")
))
def withDefaultSignature: Artifact =
underlying.copy(extra = underlying.extra ++ Seq(

View File

@ -133,7 +133,7 @@ final case class MavenSource(
.map(artifactWithExtra)
}
private val types = Map("sha1" -> "SHA-1", "md5" -> "MD5", "asc" -> "sig")
private val types = Map("sha1" -> "SHA-1", "sha256" -> "SHA-256", "md5" -> "MD5", "asc" -> "sig")
private def artifactsKnownPublications(
dependency: Dependency,
@ -327,7 +327,7 @@ final case class MavenSource(
object MavenSource {
private val checksumTypes = Set("MD5", "SHA-1")
private val checksumTypes = Set("MD5", "SHA-1", "SHA-256")
val typeExtensions: Map[String, String] = Map(
"eclipse-plugin" -> "jar",

View File

@ -248,7 +248,7 @@ class Launcher(
def globalLock = DummyGlobalLock
// See https://github.com/sbt/ivy/blob/2cf13e211b2cb31f0d3b317289dca70eca3362f6/src/java/org/apache/ivy/util/ChecksumHelper.java
def checksums: Array[String] = Array("sha1", "md5")
def checksums: Array[String] = Array("sha1", "sha256", "md5")
def app(id: xsbti.ApplicationID, version: String): xsbti.AppProvider =
app(ApplicationID(id).copy(version = version))

View File

@ -0,0 +1 @@
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

View File

@ -0,0 +1 @@
df2bc197a6cf76f8086ef746e8af05ff07c2fbec8122ed474ffd341e1cf13307

View File

@ -0,0 +1 @@
401737ef38d6c6dd387f208123b3ec096f98899191311815596d8c79a6e5ae03

View File

@ -52,6 +52,12 @@ object ChecksumTests extends TestSuite {
assert(res.nonEmpty)
}
'binarySha256 - {
val content = Platform.readFullySync(getClass.getResource("/empty.sha256").openStream())
val res = Cache.parseRawChecksum(content)
assert(res.nonEmpty)
}
'binaryMd5 - {
val content = Platform.readFullySync(getClass.getResource("/empty.md5").openStream())
val res = Cache.parseRawChecksum(content)
@ -77,7 +83,8 @@ object ChecksumTests extends TestSuite {
url,
Map(
"MD5" -> (url + ".md5"),
"SHA-1" -> (url + ".sha1")
"SHA-1" -> (url + ".sha1"),
"SHA-256" -> (url + ".sha256")
),
Map.empty,
Attributes("jar"),
@ -98,6 +105,7 @@ object ChecksumTests extends TestSuite {
}
'sha1 - validateAll("SHA-1")
'sha256 - validateAll("SHA-256")
'md5 - validateAll("MD5")
}
}