Ecosyste.ms: OpenCollective

An open API service for software projects hosted on Open Collective.

github.com/ooni/oocrypto

Fork of Go crypto/tls with extra patches from the OONI team
https://github.com/ooni/oocrypto

all: fix typos detected by github.com/client9/misspell

Change-Id: Iadb3c5de8ae9ea45855013997ed70f7929a88661
GitHub-Last-Rev: ae85bcf82be8fee533e2b9901c...

71fa8b4459ad2b4d4d53d9c0bafddfc68d87ed80 authored over 6 years ago
crypto/tls: make ConnectionState.ExportKeyingMaterial a method

The unexported field is hidden from reflect based marshalers, which
would break otherwise. Also,...

0d7fe0da642cb2083a004b71a4c94b1a37fbc07c authored over 6 years ago
crypto/rand: use the new getrandom syscall on FreeBSD

Since the 12.x branch, the getrandom syscall had been introduced
with similar interface as Linux...

eb58c15348a7079827b722d4e4afbc4909b2ecab authored over 6 years ago
crypto/rc4: remove assembler implementations

This CL removes the RC4 assembler implementations.
RC4 is broken and should not be used for encr...

d8455ea122f372036c4b1a5e49fe8070c32d2e43 authored over 6 years ago
crypto/{aes,cipher,rand}: use binary.{Big,Little}Endian methods

Use the binary.{Big,Little}Endian integer encoding methods rather
than unsafe or local implement...

d4f477707c6f0ce0be60ee24896cca64a6b2fa6e authored over 6 years ago
all: use internal/cpu feature variables directly

Avoid using package specific variables when there is a one to one
correspondance to cpu feature ...

b6bbfe6aa42ba4824e985255540c0f2ad845b26f authored over 6 years ago
[dev.boringcrypto] crypto/internal/boring: fix aesCipher implementation of gcmAble

In CL 48510 the gcmAble interface was changed to include the tag size.
The BoringCrypto aesCiphe...

d23b48715f6cf6b538a92e99e21005d3dacda457 authored over 6 years ago
crypto/ecdsa: add a package level example

Change-Id: I4063d5ec4ac45561b94472b528583be564981912
Reviewed-on: https://go-review.googlesource...

5ed4b3952007048297bf0400e43dd456c1615193 authored over 6 years ago
crypto/x509: skip TestSystemRoots

cgo and non-cgo code paths can disagree
on the number of root certificates:
=== RUN TestSystem...

4b05cb2d9049e7e7b830db920d2685de5a4de270 authored over 6 years ago
crypto/tls: fix deadlock when Read and Close called concurrently

The existing implementation of TLS connection has a deadlock. It occurs
when client connects to ...

219e98ca289207d6aa8554defbb94b8e8cda46d0 authored over 6 years ago
crypto/aes: implement AES-GCM AEAD for arm64

Use the dedicated AES* and PMULL* instructions to accelerate AES-GCM

name old time...

99894fc7aa0a662f96d456addcf9fc72b1e42952 authored over 6 years ago
crypto/elliptic: implement P256 for arm64

This patch ports the existing optimized P256 implementation to arm64.

name old time/...

70752ce33a4fb9628db973a0106f5d824f1a0ffa authored over 6 years ago
crypto/x509: add GODEBUG option x509ignoreCN=1

When x509ignoreCN=1 is present in GODEBUG, ignore the deprecated Common
Name field. This will le...

abaab92cfc0ce554b52c7ac952b8c69cda377061 authored over 6 years ago
crypto/x509: ignore Common Name when it does not parse as a hostname

The Common Name is used as a hostname when there are no Subject
Alternative Names, but it is not...

c36b92178c1b2c4a992ac99a08fae14507b7395d authored over 6 years ago
doc: update the minimum support Windows version

Also, remove some test code that was trying to work on XP and fix up
some comments referencing X...

a65cf6f8690b2a82e2c702c3ccb44ee3c9278369 authored over 6 years ago
[dev.boringcrypto] all: merge master into dev.boringcrypto

Add a couple of skips for slow js/wasm tests.

Change-Id: Ic95256b1d3c6e5e2f0cc536fad51e914d31cda9e

bfb7602369c5986b7c1826e06d4380c31e66659b authored over 6 years ago
crypto/x509: better debug output for verify-cert calls

Now that pkix.Name offers String() we should use that as some CN's are blank.

Updates #24084

C...

b35274fa2758f924a9cba3683cd2498983b28d4b authored over 6 years ago
Revert "crypto/elliptic: implement P256 for arm64"

This reverts commit 0246915fbfcc41870173b7f016dc7fa9437bbc13.

Reason for revert: Broke darwin/a...

61f37ea8be1523231d4b14bbc4bda6d20b91ecbd authored over 6 years ago
crypto/tls: add RSASSA-PSS support for handshake messages

This adds support for RSASSA-PSS signatures in handshake messages as
required by TLS 1.3. Even i...

a3cd9a9972df9aa2fa44bc8161634f4e4628375d authored over 6 years ago
syscall/js: add TypedArrayOf

The new function js.TypedArrayOf returns a JavaScript typed array for
a given slice.
https://dev...

4e1a06724c52010166af4038df191ce86f8ff193 authored over 6 years ago
crypto/elliptic: implement P256 for arm64

This patch ports the existing optimized P256 implementation to arm64.

name old time/...

4728ef5dc8232fd202f9423287989324bd8e42e1 authored over 6 years ago
syscall/js: turn constant package vars into functions

This is so the values can not be changed and the type is easy to see.

Requested on https://go-r...

ba676bc176235cd9ed51bd0ef44009e685d919c6 authored over 6 years ago
crypto/tls: consolidate signatures handling in SKE and CV

ServerKeyExchange and CertificateVerify can share the same logic for
picking a signature algorit...

abdea40cb89cb62aeb4eed4343557328fefd4332 authored over 6 years ago
crypto/rand: make documentation consistent between package comment and Reader

Updates #25959

Change-Id: I9ae64b216ab5807718db0db98b32de1dc5fa4bec
Reviewed-on: https://go-rev...

aebc37be7180138e15c1b678a6f74cbe795e9c44 authored over 6 years ago
crypto: panic on illegal input and output overlap

Normalized all panic checks and added inexact aliasing panics across
Stream, Block, BlockMode an...

852dd6d86758c4a3a8e62ed56a0f37fd905d95dd authored over 6 years ago
crypto/x509: re-enable TestSystemRoots on darwin

It was apparently waiting on CL 36942, which was submitted.

Fixes #21416

Change-Id: I8f4ccc5a3...

003c932850c51275b98830f1e9a4a70f2c52235c authored over 6 years ago
[dev.boringcrypto] crypto/rsa: drop random source reading emulation

Now that the standard library behavior in reading from the randomness
source is not reliable tha...

9375dbf75cc4303fa0164700b42ead21778a0d18 authored over 6 years ago
crypto, internal/cpu: fix s390x AES feature detection and update SHA implementations

Hardware AES support in Go on s390x currently requires ECB, CBC
and CTR modes be available. It a...

f41c15e03bcae09d416d2123861430de508f93dd authored over 6 years ago
[dev.boringcrypto] all: merge master into dev.boringcrypto

Conflicts due to randutil.MaybeReadByte (kept at the top for patch
maintainability and consisten...

39ba10fb3a31d49cf1afba16a09a6d21034b67ff authored over 6 years ago
crypto/tls: expand docs on client-side session ticket support

Users are sometimes confused why session tickets are not enabled even if
SessionTicketsDisabled ...

dabccb8b647e2457b04e604dacd4c46712277a5a authored over 6 years ago
crypto: randomly read an extra byte of randomness in some places.

Code has ended up depending on things like RSA's key generation being
deterministic given a fixe...

339df247484625167448609e8d4a44b7e281d85a authored over 6 years ago
crypto/cipher: replace NewGCMWithNonceAndTagSize with NewGCMWithTagSize

This function was added during the Go 1.11 dev cycle and isn't part of
the API compatibility pro...

bf247da7ca966c214cb2f0877b5c79191e915481 authored over 6 years ago
crypto/x509: use SecItemExport instead of deprecated SecKeychainItemExport

SecKeychainItemExport is deprecated as of macOS 10.7. The minimum
supported version is macOS 10....

131fe8aba9fc73dd80e8a10af5489923fd73a744 authored over 6 years ago
all: update comment URLs from HTTP to HTTPS, where possible

Each URL was manually verified to ensure it did not serve up incorrect
content.

Change-Id: I4dc...

a7cc5179673648851f7f337378b4c39a1e6f5477 authored over 6 years ago
all: remove support for macOS 10.9 and earlier

Updates #23122

Change-Id: I4c12ec5cb1a1f15d7858f3deab636710c0660e26
Reviewed-on: https://go-rev...

2a690e6ff2986e6b74f3cad1830db6adc689615a authored over 6 years ago
[dev.boringcrypto] crypto/tls: restore AES-GCM priority when BoringCrypto is enabled

This patch used to be in crypto/internal/cipherhw.AESGCMSupport which
was removed from the tree....

72b1312fa18ae08e9957229fcbb50530d80f6365 authored over 6 years ago
crypto: fix typos in the comments

* Fix typos in the comments in the assembly code for the crypto package.

Change-Id: Iac146a7d8b...

4d90a062023ce04c1ff7cf7dae2fb5902ebc9f4d authored over 6 years ago
[dev.boringcrypto] all: merge master into dev.boringcrypto

Conflicts due to crypto/internal/cipherhw removal:
src/crypto/aes/cipher_amd64.go
src/crypto/i...

5733924549ef4273397391a87af415b3974f3114 authored over 6 years ago
crypto/{aes,internal/cipherhw,tls}: use common internal/cpu in place of cipherhw

When the internal/cpu package was introduced, the AES package still used
the custom crypto/inter...

fb1845c33fee75f46201244ce6244c2c6779c5c5 authored over 6 years ago
crypto/x509: document fields used in CreateCertificate

The added fields are used in buildExtensions so
should be documented too.

Fixes #21363

Change-...

b5780df48989c8aad4e558ba7c4d6a1b9b3928af authored over 6 years ago
crypto/x509: reformat template members in docs

It's easier to skim a list of items visually when the
items are each on a separate line. Separat...

6cc90c25555593fbfe1f68845a25777c897466c0 authored over 6 years ago
crypto/x509: check EKUs like 1.9.

This change brings back the EKU checking from 1.9. In 1.10, we checked
EKU nesting independent o...

0d1902abed1dae9df6604aecf8ab05e8e6a24c2b authored over 6 years ago
[dev.boringcrypto] crypto/rsa: fix boringFakeRandomBlind to work with (*big.Int).ModInverse

http://golang.org/cl/108996 removed the local modInverse and its call in
decrypt in favor of (*b...

d0eb63ad864db27867ab1ea45ce7d45c258e60d2 authored over 6 years ago
[dev.boringcrypto] all: merge master into dev.boringcrypto

Conflicts due to simple variable renames (d <-> d0):
src/crypto/sha1/sha1.go
src/crypto/...

52ac865571f4e0e2baccbd98873f42afa46ddaa8 authored over 6 years ago
cmd/compile,test: combine byte loads and stores on ppc64le

CL 74410 added rules to combine consecutive byte loads and
stores when the byte order was little...

6e11ec8514b13365ac2aa92c66241ce9b88d374f authored over 6 years ago
crypto/rand, crypto/x509: add js/wasm architecture

This commit adds the js/wasm architecture to the crypto packages.

Updates #18892

Change-Id: Id...

47da6ac01ab900e7240e25662a09f3e8b3b1c1d5 authored over 6 years ago
math/big: return nil for nonexistent ModInverse

Currently, the behavior of z.ModInverse(g, n) is undefined
when g and n are not relatively prime...

15c8cf607da5ba579c1d56c3c1b30b86ab4e0a0d authored over 6 years ago
crypto/tls: add examples for [Load]X509KeyPair

I was confused about how to start an HTTP server if the server
cert/key are in memory, not on di...

3608a4c39e06b43ea1ddd62b3f4eb0a19fdfc29f authored over 6 years ago
cmd/internal/obj/arm64: reorder the assembler's optab entries

Current optab entries are unordered, because the new instructions
are added at the end of the op...

566d99fd4443a9de7080f2af2574389eecc6e8a7 authored over 6 years ago
crypto/md5: unnecessary conversion

Fixes go lint warning.

Change-Id: I5a7485a4c8316b81e6aa50b95fe75e424f2fcedc
Reviewed-on: https:...

6a272cfdc8cd022b90e09014b868e541e17d9e54 authored almost 7 years ago
crypto: make receiver name consistent

Fixes go lint warning.

Change-Id: I63950e7c70bf431e88a04f32befd50be9beacadf
Reviewed-on: https:...

daed1342d5e2df44301213024a0ec6876e28078c authored almost 7 years ago
crypto/md5: make receiver name consistent

Fixes go lint warning.

Change-Id: I2d73208c6841f35d7a21a1fb4cfafbbd4250228f
Reviewed-on: https:...

552b0f10a0cc203ff3ce0a8ffb744762b6d0e8b1 authored almost 7 years ago
syscall: introduce Pointer type and use it instead of uintptr

Some syscall structures used by crypto/x509 have uintptr
fields that store pointers. These point...

ea440f2f08f7e833fa3fbc531e5c48770868ee1b authored almost 7 years ago
crypto/x509: don't return nil, nil from SystemCertPool

If there are no certs, return an empty pool, not nil.

Fixes #21405

Change-Id: Ib4ac9d5c4a8cef8...

27b25236ab9b5bfafc886f0fe1568920dccbb674 authored almost 7 years ago
crypto/elliptic: improve P256 implementation on amd64 a bit

Minor modifications to the optimized amd64 implememntation.

* Reduce window size: reduces size ...

da0ef51788b68745adab94c903fa60fd59c0c8bd authored almost 7 years ago
crypto/rsa: improve the comment of PublicKey.Size

Change-Id: Ic507cb740395e76d1d011a5a2f395b96c3d172a2
Reviewed-on: https://go-review.googlesource...

a8c2fe131f16a4c1eb7ca1494ebc3f46d9218b54 authored almost 7 years ago
go/printer, gofmt: tuned table alignment for better results

The go/printer (and thus gofmt) uses a heuristic to determine
whether to break alignment between...

10398cd008ca2d469f7095eda62a61678c5dc86d authored almost 7 years ago
crypto/tls: simplify the Handshake locking strategy

If in.Mutex is never locked by Handshake when c.handshakeComplete is
true, and since c.handshake...

01b6daaf281c28c537d071ed73f75df356637da4 authored almost 7 years ago
crypto/rsa: add PublicKey.Size accessor

Provide the fixed size from the key pair.

Change-Id: I365c8d0f7d915229ef089e46458d4c83273fc648
...

60e0f5fa9c218ddb9adf40ddc10739f2159eeefc authored almost 7 years ago
crypto/md5: add assembly implementation on arm64

This change improves the performance of the block
function used within crypto/md5 on arm64. The...

287212c675f3338b4a08156f23cae3d621a0f478 authored almost 7 years ago
crypto/x509: improve error when parsing bad ECDSA cert

When parsing an ECDSA certificate, improve the error message upon
failing to parse the curve as ...

ee21a6eae2d00a0f9a37bd83b5dfce0f6e64bb71 authored almost 7 years ago
crypto/tls: parse certificate first in X509KeyPair to get better errors

parsePrivateKey can't return useful error messages because it does trial
decoding of multiple fo...

7aa88821730355934720ca95d450ae35f7eec138 authored almost 7 years ago
crypto/x509: cache the result of SystemCertPool

Fixes #24540

Change-Id: I65e9f2f99403e22d25ea64cc26701bf62a31d070
Reviewed-on: https://go-revie...

8560139c642b94cc323a61c053c6e1a218d5d4a6 authored almost 7 years ago
crypto/x509: matching any requested EKU should be sufficient.

The documentation was unclear here and I misremembered the behaviour and
changed it in 1.10: it ...

b1dc2bab42abfdeeae07e160fb33286d66f91423 authored almost 7 years ago
crypto/rc4: optimize generic implementation slightly

The compiler can't currently figure out that it can eliminate both c.s
loads (using store to loa...

0a76dad8ad0011839287c897cc7cf0c565ce524f authored almost 7 years ago
crypto/x509: follow OpenSSL and emit Extension structures directly in CSRs.

I don't know if I got lost in the old PKCS documents, or whether this is
a case where reality di...

5d31018d253e06dc1d35ddeaae67a33880b634d2 authored almost 7 years ago
crypto/tls: support keying material export

This change implement keying material export as described in:

https://tools.ietf.org/html/rfc57...

fc99f06866e0abbe0dfc16789c63b69be5435388 authored almost 7 years ago
crypto/x509: support the PSS certificates that OpenSSL 1.1.0 generates.

It serialises optional parameters as empty rather than NULL. It's
probably technically correct, ...

51d6aded251a7dd95a1f729075ec34e96c639a6e authored almost 7 years ago
crypto/x509: don't require C99 mode in Darwin cgo code

Fixes #24425

Change-Id: I2aacbced8cd14da67fe9a4cbd62b434c18b5fce2
Reviewed-on: https://go-revie...

dcc2fb544743ef47d37cda918cbcabc1d150b43c authored almost 7 years ago
crypto/x509: clarify accepted keys for MarshalPKCS8PrivateKey

Fixes #24413.

Change-Id: I265088c9ddc624cb3b3132087cc3d4baf95d2777
Reviewed-on: https://go-revi...

5d3afe10c4c23c5e2294b85de19647ccfac3d8b8 authored almost 7 years ago
all: fix non-standard "DO NOT EDIT" comments for generated files

I found files to change with this command:

git grep 'DO NOT EDIT' | grep -v 'Code generated...

c04d72efe851142c21ef13bd3ef82885f3287ed7 authored almost 7 years ago
crypto/aes: optimize arm64 AES implementation

This patch makes use of arm64 AES instructions to accelerate AES computation
and only supports o...

37b04b929e214ce2a2a3992052977d1c691a89e7 authored almost 7 years ago
crypto: remove hand encoded amd64 instructions

Replace BYTE.. encodings with asm. This is possible due to asm
implementing more instructions an...

0363ba36fb8e7014158e03cbf5076e4d14434103 authored almost 7 years ago
crypto/x509: parse invalid DNS names and email addresses.

Go 1.10 requires that SANs in certificates are valid. However, a
non-trivial number of (generall...

6f4abd2e69a21961be5e6a317c40101b973dc2c3 authored almost 7 years ago
crypto/x509: tighten EKU checking for requested EKUs.

There are, sadly, many exceptions to EKU checking to reflect mistakes
that CAs have made in prac...

b85b995efbfaa9305a26f148d188135eae061f87 authored almost 7 years ago
crypto/sha512: speed-up for very small blocks

Similar to https://golang.org/cl/54391, but for sha512
name old time/op new time/op ...

1b931e616b997277b96cc58d32fcf02788491761 authored almost 7 years ago
crypto/sha256: speed-up for very small blocks

Similar to https://golang.org/cl/54391, but for sha256
name old time/op new time/op ...

42797e5b57c2c9452903c5e9d7c0944a1d560f5f authored almost 7 years ago
all: fix misspellings

GitHub-Last-Rev: 468df242d07419c228656985702325aa78952d99
GitHub-Pull-Request: golang/go#23935
C...

436e4d4921f5f6e8c7499102bb311fbf048395b6 authored almost 7 years ago
crypto/cipher: add NewGCMWithNonceAndTagSize for custom tag sizes.

GCM allows using tag sizes smaller than the block size. This adds a
NewGCMWithNonceAndTagSize fu...

395d8da0d3371613ca1bb152f4933e0adddce87f authored almost 7 years ago
crypto/rsa: improve error message for keys too short for PSS

Fixes #23736

Change-Id: I850d91a512394c4292927d51c475064bfa4e3053
Reviewed-on: https://go-revie...

c71acc3ade45fd38905d6263875c36dc999e0582 authored almost 7 years ago
all: use HTTPS for iana.org links

iana.org, www.iana.org and data.iana.org all present a valid TLS
certificate, so let's use it wh...

9f3cb75a233800dbd1a38787d0c1886b45329824 authored almost 7 years ago
crypto/tls: handle errors in generate_cert.go

I don't expect these to hit often, but we should still alert users if
we fail to write the corre...

e68c980abc02c0c00753125f9ba6ff0715a23bb6 authored almost 7 years ago
crypto/x509: better document Verify's behaviour.

This change expands the documentation for Verify to mention the name
constraints and EKU behavio...

a933030c098fe604b715a63c355622a5e11d6fca authored about 7 years ago
crypto/x509: parse multiple URLs in a single CRLDP.

Previously we would only extract a single URL from a given CRLDP, but
https://tools.ietf.org/htm...

6ca77fba7afc3f527dfca02cb1250c31fee07690 authored about 7 years ago
crypto: clarify that some files come from CRYPTOGAMS

and that they are covered by the CRYPTOGAMS license.

Fixes #22637

Change-Id: I75b8e08d3a8b569e...

4b01d21bd6b07fd9dab83a2ccce9356de313c419 authored about 7 years ago
crypto/x509: update iOS root certs.

Apple changed the format of its support page, so we need to
restructure the HTML parser. The HTM...

7ce2c46e0a4acef6458983a345183a7d5169d371 authored about 7 years ago
crypto/tls: optional "certificate_status" with OCSP

Follows the wording in RFC4366 more precisely which allows a server
to optionally return a "cert...

027c29e8f95f37bd27bd5c543571d72db2f7156b authored about 7 years ago
crypto/tls: document VerifyPeerCertificate behavior in relation to ClientAuth

Change-Id: I3ff478912a5a178492d544d2f4ee9cc7570d9acc
Reviewed-on: https://go-review.googlesource...

39c790d56fe88649fb27861537d0ea3714543ccf authored about 7 years ago
crypto/x509: load all trusted certs on darwin (cgo)

The current implementation ignores certs wherein the
Subject does not match the Issuer. An examp...

bb52b1993fcb3eebae4cc078352ad71b9e30c5ec authored about 7 years ago
[dev.boringcrypto] crypto/internal/boring: add MarshalBinary/UnmarshalBinary to hashes

Go 1.10 expects hash.Hash implementations to have these. Make it so.

Tested by src/hash/marshal...

73a8b6c6b61fcac8055e99b22da36d177f3e689b authored about 7 years ago
[dev.boringcrypto] all: merge master (more nearly Go 1.10 beta 1) into dev.boringcrypto

This merge picks up the new marshal tests in package hash.

Change-Id: I50136ad4953c64d776d28f13...

19f1838db6a0de9e1f4af0493900b71e9a78719a authored about 7 years ago
hash: add MarshalBinary/UnmarshalBinary round trip + golden test for all implementations

There are some basic tests in the packages implementing the hashes,
but this one is meant to be ...

6c461449e4abeeae690d863db507c5671512bebb authored about 7 years ago
[dev.boringcrypto] all: merge master (nearly Go 1.10 beta 1) into dev.boringcrypto

This is a git merge of master into dev.boringcrypto.

The branch was previously based on release...

8d89f55e72f06fb4ba5b4df14d8e711acfcd3419 authored about 7 years ago
crypto/x509/pkix: remove references to fmt.Stringer in String method docs

String method comments should explain what they do,
not that they are attempting to implement fm...

864bdd23ddf27a72060cfc09151bab3fd0ef7f6b authored about 7 years ago
crypto/x509: add test for asn1.Marshal of rsa.PublicKey

Go 1.10 is adding new API MarshalPKCS1PublicKey and
ParsePKCS1PublicKey for converting rsa.Publi...

af84816203b080ce0c558b9a5ea8f957c2a4e4a0 authored about 7 years ago
crypto/elliptic: reduce allocations on amd64

This is inspired by
https://blog.cloudflare.com/go-dont-collect-my-garbage/
This CL adds allocat...

42933574fddd2aa304a024924b9f820f180f2d0c authored about 7 years ago
crypto/x509: add ParsePKCS1PublicKey and MarshalPKCS1PublicKey

Fixes #21029

Change-Id: I308e2a2977870d8554a629f8ce38876598dba2a8
Reviewed-on: https://go-revie...

3e7f548fe93a484b61433a5ade65eb91fc33bb05 authored about 7 years ago
crypto/x509: document specifically that only v3 certificates are created.

Fixes #21593

Change-Id: I5d6c644ed1d60ae4610712155bae5cf13ee1f886
Reviewed-on: https://go-revie...

cfe871ce28c78f52326c69097b7f50e8c9d3a510 authored about 7 years ago
[dev.boringcrypto] all: merge go1.9.2 into dev.boringcrypto

Change-Id: I695e804ad8bbb6d90a28108bcf8623fc2bfab659

6e8e51c56709f32a1475698c8d8b5c686af44bc0 authored about 7 years ago
cmd/cgo: special case C ptr types to use uintptr

Some C types are declared as pointers, but C code
stores non-pointers in them. When the Go garb...

e01d2d5617ab3cdc89b17cecfda747d99571bd0c authored about 7 years ago