forked from toolshed/abra
chore: vendor
This commit is contained in:
.gitignoremodules.txt
vendor
coopcloud.tech
dario.cat
mergo
git.coopcloud.tech
coop-cloud
github.com
AlecAivazis
survey
v2
CONTRIBUTING.mdLICENSEREADME.mdconfirm.go
core
editor.gofilter.goinput.gomultiline.gomultiselect.gopassword.gorenderer.goselect.gosurvey.goterminal
LICENSE.txtREADME.mdbuffered_reader.gocursor.gocursor_windows.godisplay.godisplay_posix.godisplay_windows.goerror.gooutput.gooutput_windows.gorunereader.gorunereader_bsd.gorunereader_linux.gorunereader_posix.gorunereader_ppc64le.gorunereader_windows.gosequences.gostdio.gosyscall_windows.goterminal.go
transform.govalidate.goAzure
go-ansiterm
BurntSushi
toml
Microsoft
go-winio
ProtonMail
go-crypto
AUTHORSCONTRIBUTORSLICENSEPATENTSkey_generation.gokeys.gokeys_test_data.go
bitcurves
brainpool
eax
internal
byteutil
ocb
openpgp
aes
keywrap
armor
canonical_text.goecdh
ecdsa
eddsa
elgamal
errors
hash.gointernal
algorithm
ecc
encoding
packet
aead_config.goaead_crypter.goaead_encrypted.gocompressed.goconfig.goencrypted_key.goliteral.gonotation.goocfb.goone_pass_signature.goopaque.gopacket.goprivate_key.goprivate_key_test_data.gopublic_key.gopublic_key_test_data.goreader.gosignature.gosymmetric_key_encrypted.gosymmetrically_encrypted.gosymmetrically_encrypted_aead.gosymmetrically_encrypted_mdc.gouserattribute.gouserid.go
read.goread_write_test_data.gos2k
write.goaymanbagabas
beorn7
perks
cenkalti
backoff
cespare
xxhash
charmbracelet
lipgloss
.gitignore.golangci-soft.yml.golangci.ymlLICENSEREADME.mdalign.goansi_unix.goansi_windows.goborders.gocolor.goget.gojoin.goposition.gorenderer.gorunes.goset.gosize.gostyle.go
table
unset.gowhitespace.golog
.gitignore.golangci.yml.goreleaser.ymlLICENSEREADME.mdcontext.goformatter.gojson.golevel.golevel_121.golevel_no121.gologfmt.gologger.gologger_121.gologger_no121.gooptions.gopkg.gostdlog.gostyles.gotext.go
x
cloudflare
containerd
containerd
log
containers
image
LICENSE
docker
cache.godocker_client.godocker_image.godocker_image_dest.godocker_image_src.godocker_transport.golookaside.go
policyconfiguration
reference
wwwauthenticate.goimage
manifest
pkg
blobinfocache
none
docker
keyctl
strslice
sysregistriesv2
tlsclientconfig
transports
types
cpuguy83
go-md2man
v2
cyphar
davecgh
decentral1se
distribution
reference
docker
cli
AUTHORSLICENSENOTICE
cli-plugins
hooks
manager
cli
cobra.go
command
cli.gocli_options.gocontext.godefaultcontextstore.gotelemetry.gotelemetry_docker.gotelemetry_options.gotelemetry_utils.gotrust.goutils.go
formatter
buildcache.gocontainer.gocontext.gocustom.godisk_usage.godisplayutils.goformatter.goimage.goreflect.go
registry.gotabwriter
volume.goservice
progress
stack
formatter
compose
interpolation
loader
schema
data
config_schema_v3.0.jsonconfig_schema_v3.1.jsonconfig_schema_v3.10.jsonconfig_schema_v3.11.jsonconfig_schema_v3.12.jsonconfig_schema_v3.13.jsonconfig_schema_v3.2.jsonconfig_schema_v3.3.jsonconfig_schema_v3.4.jsonconfig_schema_v3.5.jsonconfig_schema_v3.6.jsonconfig_schema_v3.7.jsonconfig_schema_v3.8.jsonconfig_schema_v3.9.json
schema.gotemplate
types
config
config.go
configfile
credentials
credentials.godefault_store.godefault_store_darwin.godefault_store_linux.godefault_store_unsupported.godefault_store_windows.gofile_store.gonative_store.go
types
connhelper
context
debug
error.goflags
hints
manifest
registry
required.gostreams
trust
version
opts
capabilities.goconfig.goduration.goenv.goenvfile.gofile.gogpus.gohosts.gohosts_unix.gohosts_windows.gomount.gonetwork.goopts.goparse.goport.goquotedstring.gosecret.gothrottledevice.goulimit.goweightdevice.go
templates
distribution
.dockerignore.gitignore.golangci.yml.mailmapBUILDING.mdCONTRIBUTING.mdDockerfileLICENSEMAINTAINERSMakefileREADME.mdROADMAP.mdblobs.godoc.godocker-bake.hclerrors.go
manifest
manifests.gometrics
registry.goregistry
tags.gouuid
vendor.confdocker-credential-helpers
docker
AUTHORSLICENSENOTICE
api
README.mdcommon.goswagger-gen.yamlswagger.yaml
types
blkiodev
checkpoint
client.gocontainer
change_type.gochange_types.goconfig.gocontainer.gocontainer_top.gocontainer_update.gocreate_request.gocreate_response.goerrors.goexec.gofilesystem_change.gohostconfig.gohostconfig_unix.gohostconfig_windows.gooptions.gostats.gowait_exit_error.gowait_response.gowaitcondition.go
error_response.goerror_response_ext.goevents
filters
graph_driver_data.goid_response.goimage
mount
network
plugin.goplugin_device.goplugin_env.goplugin_interface_type.goplugin_mount.goplugin_responses.goport.goregistry
strslice
swarm
common.goconfig.gocontainer.gonetwork.gonode.goruntime.go
runtime
secret.goservice.goservice_create_response.goservice_update_response.goswarm.gotask.gosystem
time
types.gotypes_deprecated.goversions
volume
client
README.mdbuild_cancel.gobuild_prune.gocheckpoint_create.gocheckpoint_delete.gocheckpoint_list.goclient.goclient_deprecated.goclient_unix.goclient_windows.goconfig_create.goconfig_inspect.goconfig_list.goconfig_remove.goconfig_update.gocontainer_attach.gocontainer_commit.gocontainer_copy.gocontainer_create.gocontainer_diff.gocontainer_exec.gocontainer_export.gocontainer_inspect.gocontainer_kill.gocontainer_list.gocontainer_logs.gocontainer_pause.gocontainer_prune.gocontainer_remove.gocontainer_rename.gocontainer_resize.gocontainer_restart.gocontainer_start.gocontainer_stats.gocontainer_stop.gocontainer_top.gocontainer_unpause.gocontainer_update.gocontainer_wait.godisk_usage.godistribution_inspect.goenvvars.goerrors.goevents.gohijack.goimage_build.goimage_create.goimage_history.goimage_import.goimage_inspect.goimage_list.goimage_load.goimage_prune.goimage_pull.goimage_push.goimage_remove.goimage_save.goimage_search.goimage_tag.goinfo.gointerface.gointerface_experimental.gointerface_stable.gologin.gonetwork_connect.gonetwork_create.gonetwork_disconnect.gonetwork_inspect.gonetwork_list.gonetwork_prune.gonetwork_remove.gonode_inspect.gonode_list.gonode_remove.gonode_update.gooptions.goping.goplugin_create.goplugin_disable.goplugin_enable.goplugin_inspect.goplugin_install.goplugin_list.goplugin_push.goplugin_remove.goplugin_set.goplugin_upgrade.gorequest.gosecret_create.gosecret_inspect.gosecret_list.gosecret_remove.gosecret_update.goservice_create.goservice_inspect.goservice_list.goservice_logs.goservice_remove.goservice_update.goswarm_get_unlock_key.goswarm_init.goswarm_inspect.goswarm_join.goswarm_leave.goswarm_unlock.goswarm_update.gotask_inspect.gotask_list.gotask_logs.goutils.goversion.govolume_create.govolume_inspect.govolume_list.govolume_prune.govolume_remove.govolume_update.go
errdefs
internal
multierror
pkg
archive
archive.goarchive_linux.goarchive_other.goarchive_unix.goarchive_windows.gochanges.gochanges_linux.gochanges_other.gochanges_unix.gochanges_windows.gocopy.gocopy_unix.gocopy_windows.godiff.godiff_unix.godiff_windows.gopath.gopath_unix.gopath_windows.gotime_linux.gotime_unsupported.gowhiteouts.gowrap.go
homedir
idtools
idtools.goidtools_unix.goidtools_windows.gousergroupadd_linux.gousergroupadd_unsupported.goutils_unix.go
ioutils
jsonmessage
pools
progress
stdcopy
streamformatter
stringid
system
args_windows.gochtimes.gochtimes_nowindows.gochtimes_windows.goerrors.gofilesys.gofilesys_unix.gofilesys_windows.goinit_windows.golstat_unix.golstat_windows.gomknod.gomknod_freebsd.gomknod_unix.gostat_bsd.gostat_darwin.gostat_illumos.gostat_linux.gostat_openbsd.gostat_unix.gostat_windows.goutimes_unix.goutimes_unsupported.goxattrs.goxattrs_linux.goxattrs_unsupported.go
registry
go-connections
LICENSE
nat
sockets
README.mdinmem_socket.goproxy.gosockets.gosockets_unix.gosockets_windows.gotcp_socket.gounix_socket.go
tlsconfig
go-metrics
CONTRIBUTING.mdLICENSELICENSE.docsNOTICEREADME.mdcounter.godocs.gogauge.gohandler.gohelpers.gonamespace.goregister.gotimer.gounit.go
go-units
go
libtrust
emirpasic
gods
felixge
httpsnoop
fvbommel
ghodss
go-git
gcfg
go-billy
v5
go-git
v5
.gitignoreCODE_OF_CONDUCT.mdCOMPATIBILITY.mdCONTRIBUTING.mdEXTENDING.mdLICENSEMakefileREADME.mdSECURITY.mdblame.gocommon.gohash.goreference.gorevision.goprune.goremote.gorepository.gosigner.gostatus.gosubmodule.goworktree.goworktree_bsd.goworktree_commit.goworktree_js.goworktree_linux.goworktree_plan9.goworktree_status.goworktree_unix_other.goworktree_windows.go
config
doc.gointernal
object_walker.gooptions.gooss-fuzz.shplumbing
cache
color
error.gofilemode
format
config
diff
gitignore
idxfile
index
objfile
packfile
common.godelta_index.godelta_selector.godiff_delta.godoc.goencoder.goerror.gofsobject.goobject_pack.gopackfile.goparser.gopatch_delta.goscanner.go
pktline
hash
memory.goobject.goobject
blob.gochange.gochange_adaptor.gocommit.gocommit_walker.gocommit_walker_bfs.gocommit_walker_bfs_filtered.gocommit_walker_ctime.gocommit_walker_limit.gocommit_walker_path.godifftree.gofile.gomerge_base.goobject.gopatch.gorename.gosignature.gotag.gotree.gotreenoder.go
protocol
packp
revlist
storer
transport
storage
filesystem
memory
storer.goutils
binary
diff
ioutil
merkletrie
sync
trace
go-logfmt
go-logr
logr
.golangci.yamlCHANGELOG.mdCONTRIBUTING.mdLICENSEREADME.mdSECURITY.mdcontext.gocontext_noslog.gocontext_slog.godiscard.go
funcr
logr.gosloghandler.goslogr.goslogsink.gostdr
go-viper
mapstructure
gogo
protobuf
AUTHORSCONTRIBUTORSLICENSE
proto
Makefileclone.gocustom_gogo.godecode.godeprecated.godiscard.goduration.goduration_gogo.goencode.goencode_gogo.goequal.goextensions.goextensions_gogo.golib.golib_gogo.gomessage_set.gopointer_reflect.gopointer_reflect_gogo.gopointer_unsafe.gopointer_unsafe_gogo.goproperties.goproperties_gogo.goskip_gogo.gotable_marshal.gotable_marshal_gogo.gotable_merge.gotable_unmarshal.gotable_unmarshal_gogo.gotext.gotext_gogo.gotext_parser.gotimestamp.gotimestamp_gogo.gowrappers.gowrappers_gogo.go
golang
google
gorilla
mux
grpc-ecosystem
grpc-gateway
hashicorp
go-cleanhttp
go-retryablehttp
inconshreveable
jbenet
kballard
go-shellquote
kevinburke
ssh_config
klauspost
compress
.gitattributes.gitignore.goreleaser.ymlLICENSEREADME.mdSECURITY.mdcompressible.gos2sx.mods2sx.sum
fse
gen.shhuff0
.gitignoreREADME.mdbitreader.gobitwriter.gocompress.godecompress.godecompress_amd64.godecompress_amd64.sdecompress_generic.gohuff0.go
internal
cpuinfo
snapref
zstd
README.mdbitreader.gobitwriter.goblockdec.goblockenc.goblocktype_string.gobytebuf.gobytereader.godecodeheader.godecoder.godecoder_options.godict.goenc_base.goenc_best.goenc_better.goenc_dfast.goenc_fast.goencoder.goencoder_options.goframedec.goframeenc.gofse_decoder.gofse_decoder_amd64.gofse_decoder_amd64.sfse_decoder_generic.gofse_encoder.gofse_predefined.gohash.gohistory.gomatchlen_amd64.gomatchlen_amd64.smatchlen_generic.goseqdec.goseqdec_amd64.goseqdec_amd64.sseqdec_generic.goseqenc.gosnappy.gozip.gozstd.go
internal
xxhash
lucasb-eyer
go-colorful
mattn
go-colorable
LICENSEREADME.mdcolorable_appengine.gocolorable_others.gocolorable_windows.gogo.test.shnoncolorable.go
go-isatty
LICENSEREADME.mddoc.gogo.test.shisatty_bsd.goisatty_others.goisatty_plan9.goisatty_solaris.goisatty_tcgets.goisatty_windows.go
go-runewidth
mgutz
miekg
pkcs11
mitchellh
colorstring
moby
docker-image-spec
patternmatcher
sys
sequential
signal
LICENSEsignal.gosignal_darwin.gosignal_freebsd.gosignal_linux.gosignal_linux_mipsx.gosignal_unix.gosignal_unsupported.gosignal_windows.go
user
term
morikuni
muesli
termenv
.gitignore.golangci-soft.yml.golangci.ymlLICENSEREADME.mdansi_compat.mdansicolors.gocolor.goconstants_linux.goconstants_solaris.goconstants_unix.gocopy.gohyperlink.gonotification.gooutput.goprofile.goscreen.gostyle.gotemplatehelper.gotermenv.gotermenv_other.gotermenv_posix.gotermenv_solaris.gotermenv_unix.gotermenv_windows.go
munnerz
goautoneg
opencontainers
go-digest
.mailmap.pullapprove.yml.travis.ymlCONTRIBUTING.mdLICENSELICENSE.docsMAINTAINERSREADME.mdalgorithm.godigest.godigester.godoc.goverifiers.go
image-spec
pjbgf
sha1cd
pkg
pmezard
go-difflib
prometheus
client_golang
LICENSENOTICE
prometheus
.gitignoreREADME.mdbuild_info_collector.gocollector.gocounter.godesc.godoc.goexpvar_collector.gofnv.gogauge.goget_pid.goget_pid_gopherjs.gogo_collector.gogo_collector_go116.gogo_collector_latest.gohistogram.go
internal
labels.gometric.gonum_threads.gonum_threads_gopherjs.goobserver.goprocess_collector.goprocess_collector_js.goprocess_collector_other.goprocess_collector_wasip1.goprocess_collector_windows.gopromhttp
registry.gosummary.gotimer.gountyped.govalue.govec.govnext.gowrap.goclient_model
common
procfs
.gitignore.golangci.ymlCODE_OF_CONDUCT.mdCONTRIBUTING.mdLICENSEMAINTAINERS.mdMakefileMakefile.commonNOTICEREADME.mdSECURITY.mdarp.gobuddyinfo.gocmdline.gocpuinfo.gocpuinfo_armx.gocpuinfo_loong64.gocpuinfo_mipsx.gocpuinfo_others.gocpuinfo_ppcx.gocpuinfo_riscvx.gocpuinfo_s390x.gocpuinfo_x86.gocrypto.godoc.gofs.gofs_statfs_notype.gofs_statfs_type.gofscache.go
internal
ipvs.gokernel_random.goloadavg.gomdstat.gomeminfo.gomountinfo.gomountstats.gonet_conntrackstat.gonet_dev.gonet_ip_socket.gonet_protocols.gonet_route.gonet_sockstat.gonet_softnet.gonet_tcp.gonet_tls_stat.gonet_udp.gonet_unix.gonet_wireless.gonet_xfrm.gonetstat.goproc.goproc_cgroup.goproc_cgroups.goproc_environ.goproc_fdinfo.goproc_interrupts.goproc_io.goproc_limits.goproc_maps.goproc_netstat.goproc_ns.goproc_psi.goproc_smaps.goproc_snmp.goproc_snmp6.goproc_stat.goproc_status.goproc_sys.goschedstat.goslab.gosoftirqs.gostat.goswaps.gothread.gottarvm.gozoneinfo.gorivo
uniseg
russross
blackfriday
schollz
sergi
go-diff
sirupsen
logrus
.gitignore.golangci.yml.travis.ymlCHANGELOG.mdLICENSEREADME.mdalt_exit.goappveyor.ymlbuffer_pool.godoc.goentry.goexported.goformatter.gohooks.gojson_formatter.gologger.gologrus.goterminal_check_appengine.goterminal_check_bsd.goterminal_check_js.goterminal_check_no_terminal.goterminal_check_notappengine.goterminal_check_solaris.goterminal_check_unix.goterminal_check_windows.gotext_formatter.gowriter.go
skeema
knownhosts
spf13
cobra
.gitignore.golangci.yml.mailmapCONDUCT.mdCONTRIBUTING.mdLICENSE.txtMAINTAINERSMakefileREADME.mdactive_help.goargs.gobash_completions.gobash_completionsV2.gocobra.gocommand.gocommand_notwin.gocommand_win.gocompletions.gofish_completions.goflag_groups.gopowershell_completions.goshell_completions.gozsh_completions.go
pflag
.gitignore.travis.ymlLICENSEREADME.mdbool.gobool_slice.gobytes.gocount.goduration.goduration_slice.goflag.gofloat32.gofloat32_slice.gofloat64.gofloat64_slice.gogolangflag.goint.goint16.goint32.goint32_slice.goint64.goint64_slice.goint8.goint_slice.goip.goip_slice.goipmask.goipnet.gostring.gostring_array.gostring_slice.gostring_to_int.gostring_to_int64.gostring_to_string.gouint.gouint16.gouint32.gouint64.gouint8.gouint_slice.go
stretchr
testify
theupdateframework
notary
.gitignoreCHANGELOG.mdCODE_OF_CONDUCT.mdCONTRIBUTING.mdCONTRIBUTORSDockerfileJenkinsfileLICENSEMAINTAINERSMAINTAINERS.ALUMNIMAINTAINERS_RULES.mdMakefileNOTARY_VERSIONREADME.mdcodecov.ymlconst.goconst_nowindows.goconst_windows.gocross.Dockerfile
client
changelist
client.godelegations.goerrors.gohelpers.gointerface.goreader.gorepo.gorepo_pkcs11.gotufclient.gowitness.gocryptoservice
development.mysql.ymldevelopment.postgresql.ymldevelopment.rethink.ymldocker-compose.postgresql.ymldocker-compose.rethink.ymldocker-compose.ymlescrow.Dockerfilefips.gonotary.gopassphrase
server.Dockerfileserver.minimal.Dockerfilesigner.Dockerfilesigner.minimal.Dockerfilestorage
trustmanager
trustpinning
tuf
urfave
cli
.flake8.gitignoreCODE_OF_CONDUCT.mdLICENSEREADME.mdapp.gocategory.gocli.gocommand.gocontext.godocs.goerrors.gofish.goflag.goflag_bool.goflag_bool_t.goflag_duration.goflag_float64.goflag_generic.goflag_int.goflag_int64.goflag_int64_slice.goflag_int_slice.goflag_string.goflag_string_slice.goflag_uint.goflag_uint64.gofuncs.gohelp.goparse.gosort.gotemplate.go
xanzy
xeipuuv
gojsonpointer
gojsonreference
gojsonschema
go.opentelemetry.io
contrib
instrumentation
net
http
otel
.codespellignore.codespellrc.gitattributes.gitignore.golangci.yml.lycheeignore.markdownlint.yamlCHANGELOG.mdCODEOWNERSCONTRIBUTING.mdLICENSEMakefileREADME.mdRELEASING.mdVERSIONING.mdget_main_pkgs.shhandler.gotrace.go
attribute
baggage
codes
doc.goerror_handler.goexporters
otlp
otlpmetric
otlpmetricgrpc
otlptrace
LICENSEREADME.mdclients.godoc.goexporter.go
internal
tracetransform
otlptracegrpc
LICENSEREADME.mdclient.godoc.goexporter.go
version.gointernal
options.gointernal
internal_logging.gometric.gometric
LICENSEREADME.mdasyncfloat64.goasyncint64.goconfig.godoc.go
propagation.goembedded
instrument.gometer.gonoop
syncfloat64.gosyncint64.gopropagation
renovate.jsonrequirements.txtsdk
LICENSEREADME.md
instrumentation
internal
metric
LICENSEREADME.mdaggregation.gocache.goconfig.godoc.goenv.goexemplar.goexporter.goinstrument.goinstrumentkind_string.go
internal
manual_reader.gometer.gometricdata
periodic_reader.gopipeline.goprovider.goreader.goversion.goview.goresource
README.mdauto.gobuiltin.goconfig.gocontainer.godoc.goenv.gohost_id.gohost_id_bsd.gohost_id_darwin.gohost_id_exec.gohost_id_linux.gohost_id_readfile.gohost_id_unsupported.gohost_id_windows.goos.goos_release_darwin.goos_release_unix.goos_unix.goos_unsupported.goos_windows.goprocess.goresource.go
trace
README.mdbatch_span_processor.godoc.goevent.goevictedqueue.goid_generator.golink.goprovider.gosampler_env.gosampling.gosimple_span_processor.gosnapshot.gospan.gospan_exporter.gospan_limits.gospan_processor.gotracer.goversion.go
version.gosemconv
v1.20.0
v1.21.0
v1.24.0
v1.26.0
trace
verify_examples.shverify_readmes.shversion.goversions.yamlproto
otlp
golang.org
x
crypto
LICENSEPATENTS
argon2
blake2b
blake2b.goblake2bAVX2_amd64.goblake2bAVX2_amd64.sblake2b_amd64.sblake2b_generic.goblake2b_ref.goblake2x.goregister.go
blowfish
cast5
chacha20
chacha_arm64.gochacha_arm64.schacha_generic.gochacha_noasm.gochacha_ppc64le.gochacha_ppc64le.schacha_s390x.gochacha_s390x.sxor.go
curve25519
ed25519
hkdf
internal
alias
poly1305
pbkdf2
sha3
doc.gohashes.gohashes_noasm.gokeccakf.gokeccakf_amd64.gokeccakf_amd64.ssha3.gosha3_s390x.gosha3_s390x.sshake.goshake_noasm.goxor.go
ssh
exp
net
LICENSEPATENTS
context
http
httpguts
http2
.gitignoreascii.gociphers.goclient_conn_pool.godatabuffer.goerrors.goflow.goframe.gogotrack.goheadermap.go
hpack
http2.gopipe.goserver.gotimer.gotransport.gowrite.gowritesched.gowritesched_priority.gowritesched_random.gowritesched_roundrobin.goidna
go118.goidna10.0.0.goidna9.0.0.gopre_go118.gopunycode.gotables10.0.0.gotables11.0.0.gotables12.0.0.gotables13.0.0.gotables15.0.0.gotables9.0.0.gotrie.gotrie12.0.0.gotrie13.0.0.gotrieval.go
internal
proxy
trace
sync
sys
LICENSEPATENTS
cpu
asm_aix_ppc64.sbyteorder.gocpu.gocpu_aix.gocpu_arm.gocpu_arm64.gocpu_arm64.scpu_gc_arm64.gocpu_gc_s390x.gocpu_gc_x86.gocpu_gccgo_arm64.gocpu_gccgo_s390x.gocpu_gccgo_x86.ccpu_gccgo_x86.gocpu_linux.gocpu_linux_arm.gocpu_linux_arm64.gocpu_linux_mips64x.gocpu_linux_noinit.gocpu_linux_ppc64x.gocpu_linux_s390x.gocpu_loong64.gocpu_mips64x.gocpu_mipsx.gocpu_netbsd_arm64.gocpu_openbsd_arm64.gocpu_openbsd_arm64.scpu_other_arm.gocpu_other_arm64.gocpu_other_mips64x.gocpu_other_ppc64x.gocpu_other_riscv64.gocpu_ppc64x.gocpu_riscv64.gocpu_s390x.gocpu_s390x.scpu_wasm.gocpu_x86.gocpu_x86.scpu_zos.gocpu_zos_s390x.goendian_big.goendian_little.gohwcap_linux.goparse.goproc_cpuinfo_linux.goruntime_auxv.goruntime_auxv_go121.gosyscall_aix_gccgo.gosyscall_aix_ppc64_gc.go
execabs
plan9
asm.sasm_plan9_386.sasm_plan9_amd64.sasm_plan9_arm.sconst_plan9.godir_plan9.goenv_plan9.goerrors_plan9.gomkall.shmkerrors.shmksysnum_plan9.shpwd_go15_plan9.gopwd_plan9.gorace.gorace0.gostr.gosyscall.gosyscall_plan9.gozsyscall_plan9_386.gozsyscall_plan9_amd64.gozsyscall_plan9_arm.gozsysnum_plan9.go
unix
.gitignoreREADME.mdaffinity_linux.goaliases.goasm_aix_ppc64.sasm_bsd_386.sasm_bsd_amd64.sasm_bsd_arm.sasm_bsd_arm64.sasm_bsd_ppc64.sasm_bsd_riscv64.sasm_linux_386.sasm_linux_amd64.sasm_linux_arm.sasm_linux_arm64.sasm_linux_loong64.sasm_linux_mips64x.sasm_linux_mipsx.sasm_linux_ppc64x.sasm_linux_riscv64.sasm_linux_s390x.sasm_openbsd_mips64.sasm_solaris_amd64.sasm_zos_s390x.sbluetooth_linux.gobpxsvc_zos.gobpxsvc_zos.scap_freebsd.goconstants.godev_aix_ppc.godev_aix_ppc64.godev_darwin.godev_dragonfly.godev_freebsd.godev_linux.godev_netbsd.godev_openbsd.godev_zos.godirent.goendian_big.goendian_little.goenv_unix.gofcntl.gofcntl_darwin.gofcntl_linux_32bit.gofdset.gogccgo.gogccgo_c.cgccgo_linux_amd64.goifreq_linux.goioctl_linux.goioctl_signed.goioctl_unsigned.goioctl_zos.gomkall.shmkerrors.shmmap_nomremap.gomremap.gopagesize_unix.gopledge_openbsd.goptrace_darwin.goptrace_ios.gorace.gorace0.goreaddirent_getdents.goreaddirent_getdirentries.gosockcmsg_dragonfly.gosockcmsg_linux.gosockcmsg_unix.gosockcmsg_unix_other.gosockcmsg_zos.gosymaddr_zos_s390x.ssyscall.gosyscall_aix.gosyscall_aix_ppc.gosyscall_aix_ppc64.gosyscall_bsd.gosyscall_darwin.gosyscall_darwin_amd64.gosyscall_darwin_arm64.gosyscall_darwin_libSystem.gosyscall_dragonfly.gosyscall_dragonfly_amd64.gosyscall_freebsd.gosyscall_freebsd_386.gosyscall_freebsd_amd64.gosyscall_freebsd_arm.gosyscall_freebsd_arm64.gosyscall_freebsd_riscv64.gosyscall_hurd.gosyscall_hurd_386.gosyscall_illumos.gosyscall_linux.gosyscall_linux_386.gosyscall_linux_alarm.gosyscall_linux_amd64.gosyscall_linux_amd64_gc.gosyscall_linux_arm.gosyscall_linux_arm64.gosyscall_linux_gc.gosyscall_linux_gc_386.gosyscall_linux_gc_arm.gosyscall_linux_gccgo_386.gosyscall_linux_gccgo_arm.gosyscall_linux_loong64.gosyscall_linux_mips64x.gosyscall_linux_mipsx.gosyscall_linux_ppc.gosyscall_linux_ppc64x.gosyscall_linux_riscv64.gosyscall_linux_s390x.gosyscall_linux_sparc64.gosyscall_netbsd.gosyscall_netbsd_386.gosyscall_netbsd_amd64.gosyscall_netbsd_arm.gosyscall_netbsd_arm64.gosyscall_openbsd.gosyscall_openbsd_386.gosyscall_openbsd_amd64.gosyscall_openbsd_arm.gosyscall_openbsd_arm64.gosyscall_openbsd_libc.gosyscall_openbsd_mips64.gosyscall_openbsd_ppc64.gosyscall_openbsd_riscv64.gosyscall_solaris.gosyscall_solaris_amd64.gosyscall_unix.gosyscall_unix_gc.gosyscall_unix_gc_ppc64x.gosyscall_zos_s390x.gosysvshm_linux.gosysvshm_unix.gosysvshm_unix_other.gotimestruct.gounveil_openbsd.goxattr_bsd.gozerrors_aix_ppc.gozerrors_aix_ppc64.gozerrors_darwin_amd64.gozerrors_darwin_arm64.gozerrors_dragonfly_amd64.gozerrors_freebsd_386.gozerrors_freebsd_amd64.gozerrors_freebsd_arm.gozerrors_freebsd_arm64.gozerrors_freebsd_riscv64.gozerrors_linux.gozerrors_linux_386.gozerrors_linux_amd64.gozerrors_linux_arm.gozerrors_linux_arm64.gozerrors_linux_loong64.gozerrors_linux_mips.gozerrors_linux_mips64.gozerrors_linux_mips64le.gozerrors_linux_mipsle.gozerrors_linux_ppc.gozerrors_linux_ppc64.gozerrors_linux_ppc64le.gozerrors_linux_riscv64.gozerrors_linux_s390x.gozerrors_linux_sparc64.gozerrors_netbsd_386.gozerrors_netbsd_amd64.gozerrors_netbsd_arm.gozerrors_netbsd_arm64.gozerrors_openbsd_386.gozerrors_openbsd_amd64.gozerrors_openbsd_arm.gozerrors_openbsd_arm64.gozerrors_openbsd_mips64.gozerrors_openbsd_ppc64.gozerrors_openbsd_riscv64.gozerrors_solaris_amd64.gozerrors_zos_s390x.gozptrace_armnn_linux.gozptrace_linux_arm64.gozptrace_mipsnn_linux.gozptrace_mipsnnle_linux.gozptrace_x86_linux.gozsymaddr_zos_s390x.szsyscall_aix_ppc.gozsyscall_aix_ppc64.gozsyscall_aix_ppc64_gc.gozsyscall_aix_ppc64_gccgo.gozsyscall_darwin_amd64.gozsyscall_darwin_amd64.szsyscall_darwin_arm64.gozsyscall_darwin_arm64.szsyscall_dragonfly_amd64.gozsyscall_freebsd_386.gozsyscall_freebsd_amd64.gozsyscall_freebsd_arm.gozsyscall_freebsd_arm64.gozsyscall_freebsd_riscv64.gozsyscall_illumos_amd64.gozsyscall_linux.gozsyscall_linux_386.gozsyscall_linux_amd64.gozsyscall_linux_arm.gozsyscall_linux_arm64.gozsyscall_linux_loong64.gozsyscall_linux_mips.gozsyscall_linux_mips64.gozsyscall_linux_mips64le.gozsyscall_linux_mipsle.gozsyscall_linux_ppc.gozsyscall_linux_ppc64.gozsyscall_linux_ppc64le.gozsyscall_linux_riscv64.gozsyscall_linux_s390x.gozsyscall_linux_sparc64.gozsyscall_netbsd_386.gozsyscall_netbsd_amd64.gozsyscall_netbsd_arm.gozsyscall_netbsd_arm64.gozsyscall_openbsd_386.gozsyscall_openbsd_386.szsyscall_openbsd_amd64.gozsyscall_openbsd_amd64.szsyscall_openbsd_arm.gozsyscall_openbsd_arm.szsyscall_openbsd_arm64.gozsyscall_openbsd_arm64.szsyscall_openbsd_mips64.gozsyscall_openbsd_mips64.szsyscall_openbsd_ppc64.gozsyscall_openbsd_ppc64.szsyscall_openbsd_riscv64.gozsyscall_openbsd_riscv64.szsyscall_solaris_amd64.gozsyscall_zos_s390x.gozsysctl_openbsd_386.gozsysctl_openbsd_amd64.gozsysctl_openbsd_arm.gozsysctl_openbsd_arm64.gozsysctl_openbsd_mips64.gozsysctl_openbsd_ppc64.gozsysctl_openbsd_riscv64.gozsysnum_darwin_amd64.gozsysnum_darwin_arm64.gozsysnum_dragonfly_amd64.gozsysnum_freebsd_386.gozsysnum_freebsd_amd64.gozsysnum_freebsd_arm.gozsysnum_freebsd_arm64.gozsysnum_freebsd_riscv64.gozsysnum_linux_386.gozsysnum_linux_amd64.gozsysnum_linux_arm.gozsysnum_linux_arm64.gozsysnum_linux_loong64.gozsysnum_linux_mips.gozsysnum_linux_mips64.gozsysnum_linux_mips64le.gozsysnum_linux_mipsle.gozsysnum_linux_ppc.gozsysnum_linux_ppc64.gozsysnum_linux_ppc64le.gozsysnum_linux_riscv64.gozsysnum_linux_s390x.gozsysnum_linux_sparc64.gozsysnum_netbsd_386.gozsysnum_netbsd_amd64.gozsysnum_netbsd_arm.gozsysnum_netbsd_arm64.gozsysnum_openbsd_386.gozsysnum_openbsd_amd64.gozsysnum_openbsd_arm.gozsysnum_openbsd_arm64.gozsysnum_openbsd_mips64.gozsysnum_openbsd_ppc64.gozsysnum_openbsd_riscv64.gozsysnum_zos_s390x.goztypes_aix_ppc.goztypes_aix_ppc64.goztypes_darwin_amd64.goztypes_darwin_arm64.goztypes_dragonfly_amd64.goztypes_freebsd_386.goztypes_freebsd_amd64.goztypes_freebsd_arm.goztypes_freebsd_arm64.goztypes_freebsd_riscv64.goztypes_linux.goztypes_linux_386.goztypes_linux_amd64.goztypes_linux_arm.goztypes_linux_arm64.goztypes_linux_loong64.goztypes_linux_mips.goztypes_linux_mips64.goztypes_linux_mips64le.goztypes_linux_mipsle.goztypes_linux_ppc.goztypes_linux_ppc64.goztypes_linux_ppc64le.goztypes_linux_riscv64.goztypes_linux_s390x.goztypes_linux_sparc64.goztypes_netbsd_386.goztypes_netbsd_amd64.goztypes_netbsd_arm.goztypes_netbsd_arm64.goztypes_openbsd_386.goztypes_openbsd_amd64.goztypes_openbsd_arm.goztypes_openbsd_arm64.goztypes_openbsd_mips64.goztypes_openbsd_ppc64.goztypes_openbsd_riscv64.goztypes_solaris_amd64.goztypes_zos_s390x.go
windows
aliases.godll_windows.goenv_windows.goeventlog.goexec_windows.gomemory_windows.gomkerrors.bashmkknownfolderids.bashmksyscall.gorace.gorace0.go
registry
security_windows.goservice.gosetupapi_windows.gostr.gosyscall.gosyscall_windows.gotypes_windows.gotypes_windows_386.gotypes_windows_amd64.gotypes_windows_arm.gotypes_windows_arm64.gozerrors_windows.gozknownfolderids_windows.gozsyscall_windows.goterm
CONTRIBUTING.mdLICENSEPATENTSREADME.mdcodereview.cfgterm.goterm_plan9.goterm_unix.goterm_unix_bsd.goterm_unix_other.goterm_unsupported.goterm_windows.goterminal.go
text
LICENSEPATENTS
cases
cases.gocontext.gofold.goicu.goinfo.gomap.gotables10.0.0.gotables11.0.0.gotables12.0.0.gotables13.0.0.gotables15.0.0.gotables9.0.0.gotrieval.go
internal
internal.go
language
match.gotag
language
secure
transform
unicode
bidi
bidi.gobracket.gocore.goprop.gotables10.0.0.gotables11.0.0.gotables12.0.0.gotables13.0.0.gotables15.0.0.gotables9.0.0.gotrieval.go
norm
width
time
google.golang.org
genproto
googleapis
grpc
AUTHORSCODE-OF-CONDUCT.mdCONTRIBUTING.mdGOVERNANCE.mdLICENSEMAINTAINERS.mdMakefileNOTICE.txtREADME.mdSECURITY.mdcall.gointerceptor.go
attributes
backoff.gobackoff
balancer
balancer_wrapper.gobinarylog
grpc_binarylog_v1
channelz
clientconn.gocodec.gocodes
connectivity
credentials
dialoptions.godoc.goencoding
grpclog
health
grpc_health_v1
internal
backoff
balancer
gracefulswitch
balancerload
binarylog
buffer
channelz
channel.gochannelmap.gofuncs.gologging.goserver.gosocket.gosubchannel.gosyscall_linux.gosyscall_nonlinux.gotrace.go
credentials
envconfig
experimental.gogrpclog
grpcsync
grpcutil
idle
internal.gometadata
pretty
resolver
serviceconfig
status
syscall
tcp_keepalive_others.gotcp_keepalive_unix.gotcp_keepalive_windows.gotransport
keepalive
metadata
peer
picker_wrapper.gopreloader.goregenerate.shresolver
resolver_wrapper.gorpc_util.goserver.goservice_config.goserviceconfig
shared_buffer_pool.gostats
status
stream.gostream_interfaces.gotap
trace.gotrace_notrace.gotrace_withtrace.goversion.goprotobuf
LICENSEPATENTS
encoding
protodelim
protojson
prototext
protowire
internal
descfmt
descopts
detrand
editiondefaults
encoding
defval
json
messageset
tag
text
errors
filedesc
filetype
flags
genid
any_gen.goapi_gen.godescriptor_gen.godoc.goduration_gen.goempty_gen.gofield_mask_gen.gogo_features_gen.gogoname.gomap_entry.gosource_context_gen.gostruct_gen.gotimestamp_gen.gotype_gen.gowrappers.gowrappers_gen.go
impl
api_export.gocheckinit.gocodec_extension.gocodec_field.gocodec_gen.gocodec_map.gocodec_map_go111.gocodec_map_go112.gocodec_message.gocodec_messageset.gocodec_reflect.gocodec_tables.gocodec_unsafe.goconvert.goconvert_list.goconvert_map.godecode.goencode.goenum.goextension.golegacy_enum.golegacy_export.golegacy_extension.golegacy_file.golegacy_message.gomerge.gomerge_gen.gomessage.gomessage_reflect.gomessage_reflect_field.gomessage_reflect_gen.gopointer_reflect.gopointer_unsafe.govalidate.goweak.go
order
pragma
set
strs
version
proto
checkinit.godecode.godecode_gen.godoc.goencode.goencode_gen.goequal.goextension.gomerge.gomessageset.goproto.goproto_methods.goproto_reflect.goreset.gosize.gosize_gen.gowrappers.go
protoadapt
reflect
protoreflect
methods.goproto.gosource.gosource_gen.gotype.govalue.govalue_equal.govalue_pure.govalue_union.govalue_unsafe_go120.govalue_unsafe_go121.go
protoregistry
runtime
types
known
anypb
durationpb
fieldmaskpb
structpb
timestamppb
wrapperspb
gopkg.in
warnings.v0
yaml.v2
.travis.ymlLICENSELICENSE.libyamlNOTICEREADME.mdapic.godecode.goemitterc.goencode.goparserc.goreaderc.goresolve.goscannerc.gosorter.gowriterc.goyaml.goyamlh.goyamlprivateh.go
yaml.v3
gotest.tools
v3
23
vendor/github.com/pjbgf/sha1cd/Dockerfile.arm
generated
vendored
Normal file
23
vendor/github.com/pjbgf/sha1cd/Dockerfile.arm
generated
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
FROM golang:1.20@sha256:2edf6aab2d57644f3fe7407132a0d1770846867465a39c2083770cf62734b05d
|
||||
|
||||
ENV GOOS=linux
|
||||
ENV GOARCH=arm
|
||||
ENV CGO_ENABLED=1
|
||||
ENV CC=arm-linux-gnueabihf-gcc
|
||||
ENV PATH="/go/bin/${GOOS}_${GOARCH}:${PATH}"
|
||||
ENV PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig
|
||||
|
||||
RUN dpkg --add-architecture armhf \
|
||||
&& apt update \
|
||||
&& apt install -y --no-install-recommends \
|
||||
upx \
|
||||
gcc-arm-linux-gnueabihf \
|
||||
libc6-dev-armhf-cross \
|
||||
pkg-config \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY . /src/workdir
|
||||
|
||||
WORKDIR /src/workdir
|
||||
|
||||
RUN go build ./...
|
23
vendor/github.com/pjbgf/sha1cd/Dockerfile.arm64
generated
vendored
Normal file
23
vendor/github.com/pjbgf/sha1cd/Dockerfile.arm64
generated
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
FROM golang:1.20@sha256:2edf6aab2d57644f3fe7407132a0d1770846867465a39c2083770cf62734b05d
|
||||
|
||||
ENV GOOS=linux
|
||||
ENV GOARCH=arm64
|
||||
ENV CGO_ENABLED=1
|
||||
ENV CC=aarch64-linux-gnu-gcc
|
||||
ENV PATH="/go/bin/${GOOS}_${GOARCH}:${PATH}"
|
||||
ENV PKG_CONFIG_PATH=/usr/lib/aarch64-linux-gnu/pkgconfig
|
||||
|
||||
# install build & runtime dependencies
|
||||
RUN dpkg --add-architecture arm64 \
|
||||
&& apt update \
|
||||
&& apt install -y --no-install-recommends \
|
||||
gcc-aarch64-linux-gnu \
|
||||
libc6-dev-arm64-cross \
|
||||
pkg-config \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY . /src/workdir
|
||||
|
||||
WORKDIR /src/workdir
|
||||
|
||||
RUN go build ./...
|
201
vendor/github.com/pjbgf/sha1cd/LICENSE
generated
vendored
Normal file
201
vendor/github.com/pjbgf/sha1cd/LICENSE
generated
vendored
Normal file
@ -0,0 +1,201 @@
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
40
vendor/github.com/pjbgf/sha1cd/Makefile
generated
vendored
Normal file
40
vendor/github.com/pjbgf/sha1cd/Makefile
generated
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
FUZZ_TIME ?= 1m
|
||||
|
||||
export CGO_ENABLED := 1
|
||||
|
||||
.PHONY: test
|
||||
test:
|
||||
go test ./...
|
||||
|
||||
.PHONY: bench
|
||||
bench:
|
||||
go test -benchmem -run=^$$ -bench ^Benchmark ./...
|
||||
|
||||
.PHONY: fuzz
|
||||
fuzz:
|
||||
go test -tags gofuzz -fuzz=. -fuzztime=$(FUZZ_TIME) ./test/
|
||||
|
||||
# Cross build project in arm/v7.
|
||||
build-arm:
|
||||
docker build -t sha1cd-arm -f Dockerfile.arm .
|
||||
docker run --rm sha1cd-arm
|
||||
|
||||
# Cross build project in arm64.
|
||||
build-arm64:
|
||||
docker build -t sha1cd-arm64 -f Dockerfile.arm64 .
|
||||
docker run --rm sha1cd-arm64
|
||||
|
||||
# Build with cgo disabled.
|
||||
build-nocgo:
|
||||
CGO_ENABLED=0 go build ./cgo
|
||||
|
||||
# Run cross-compilation to assure supported architectures.
|
||||
cross-build: build-arm build-arm64 build-nocgo
|
||||
|
||||
generate:
|
||||
go run sha1cdblock_amd64_asm.go -out sha1cdblock_amd64.s
|
||||
sed -i 's;&\samd64;&\n// +build !noasm,gc,amd64;g' sha1cdblock_amd64.s
|
||||
|
||||
verify: generate
|
||||
git diff --exit-code
|
||||
go vet ./...
|
58
vendor/github.com/pjbgf/sha1cd/README.md
generated
vendored
Normal file
58
vendor/github.com/pjbgf/sha1cd/README.md
generated
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
# sha1cd
|
||||
|
||||
A Go implementation of SHA1 with counter-cryptanalysis, which detects
|
||||
collision attacks.
|
||||
|
||||
The `cgo/lib` code is a carbon copy of the [original code], based on
|
||||
the award winning [white paper] by Marc Stevens.
|
||||
|
||||
The Go implementation is largely based off Go's generic sha1.
|
||||
At present no SIMD optimisations have been implemented.
|
||||
|
||||
## Usage
|
||||
|
||||
`sha1cd` can be used as a drop-in replacement for `crypto/sha1`:
|
||||
|
||||
```golang
|
||||
import "github.com/pjbgf/sha1cd"
|
||||
|
||||
func test(){
|
||||
data := []byte("data to be sha1 hashed")
|
||||
h := sha1cd.Sum(data)
|
||||
fmt.Printf("hash: %q\n", hex.EncodeToString(h))
|
||||
}
|
||||
```
|
||||
|
||||
To obtain information as to whether a collision was found, use the
|
||||
func `CollisionResistantSum`.
|
||||
|
||||
```golang
|
||||
import "github.com/pjbgf/sha1cd"
|
||||
|
||||
func test(){
|
||||
data := []byte("data to be sha1 hashed")
|
||||
h, col := sha1cd.CollisionResistantSum(data)
|
||||
if col {
|
||||
fmt.Println("collision found!")
|
||||
}
|
||||
fmt.Printf("hash: %q", hex.EncodeToString(h))
|
||||
}
|
||||
```
|
||||
|
||||
Note that the algorithm will automatically avoid collision, by
|
||||
extending the SHA1 to 240-steps, instead of 80 when a collision
|
||||
attempt is detected. Therefore, inputs that contains the unavoidable
|
||||
bit conditions will yield a different hash from `sha1cd`, when compared
|
||||
with results using `crypto/sha1`. Valid inputs will have matching the outputs.
|
||||
|
||||
## References
|
||||
- https://shattered.io/
|
||||
- https://github.com/cr-marcstevens/sha1collisiondetection
|
||||
- https://csrc.nist.gov/Projects/Cryptographic-Algorithm-Validation-Program/Secure-Hashing#shavs
|
||||
|
||||
## Use of the Original Implementation
|
||||
- https://github.com/git/git/commit/28dc98e343ca4eb370a29ceec4c19beac9b5c01e
|
||||
- https://github.com/libgit2/libgit2/pull/4136
|
||||
|
||||
[original code]: https://github.com/cr-marcstevens/sha1collisiondetection
|
||||
[white paper]: https://marc-stevens.nl/research/papers/C13-S.pdf
|
11
vendor/github.com/pjbgf/sha1cd/detection.go
generated
vendored
Normal file
11
vendor/github.com/pjbgf/sha1cd/detection.go
generated
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
package sha1cd
|
||||
|
||||
import "hash"
|
||||
|
||||
type CollisionResistantHash interface {
|
||||
// CollisionResistantSum extends on Sum by returning an additional boolean
|
||||
// which indicates whether a collision was found during the hashing process.
|
||||
CollisionResistantSum(b []byte) ([]byte, bool)
|
||||
|
||||
hash.Hash
|
||||
}
|
42
vendor/github.com/pjbgf/sha1cd/internal/const.go
generated
vendored
Normal file
42
vendor/github.com/pjbgf/sha1cd/internal/const.go
generated
vendored
Normal file
@ -0,0 +1,42 @@
|
||||
package shared
|
||||
|
||||
const (
|
||||
// Constants for the SHA-1 hash function.
|
||||
K0 = 0x5A827999
|
||||
K1 = 0x6ED9EBA1
|
||||
K2 = 0x8F1BBCDC
|
||||
K3 = 0xCA62C1D6
|
||||
|
||||
// Initial values for the buffer variables: h0, h1, h2, h3, h4.
|
||||
Init0 = 0x67452301
|
||||
Init1 = 0xEFCDAB89
|
||||
Init2 = 0x98BADCFE
|
||||
Init3 = 0x10325476
|
||||
Init4 = 0xC3D2E1F0
|
||||
|
||||
// Initial values for the temporary variables (ihvtmp0, ihvtmp1, ihvtmp2, ihvtmp3, ihvtmp4) during the SHA recompression step.
|
||||
InitTmp0 = 0xD5
|
||||
InitTmp1 = 0x394
|
||||
InitTmp2 = 0x8152A8
|
||||
InitTmp3 = 0x0
|
||||
InitTmp4 = 0xA7ECE0
|
||||
|
||||
// SHA1 contains 2 buffers, each based off 5 32-bit words.
|
||||
WordBuffers = 5
|
||||
|
||||
// The output of SHA1 is 20 bytes (160 bits).
|
||||
Size = 20
|
||||
|
||||
// Rounds represents the number of steps required to process each chunk.
|
||||
Rounds = 80
|
||||
|
||||
// SHA1 processes the input data in chunks. Each chunk contains 64 bytes.
|
||||
Chunk = 64
|
||||
|
||||
// The number of pre-step compression state to store.
|
||||
// Currently there are 3 pre-step compression states required: 0, 58, 65.
|
||||
PreStepState = 3
|
||||
|
||||
Magic = "shacd\x01"
|
||||
MarshaledSize = len(Magic) + 5*4 + Chunk + 8
|
||||
)
|
227
vendor/github.com/pjbgf/sha1cd/sha1cd.go
generated
vendored
Normal file
227
vendor/github.com/pjbgf/sha1cd/sha1cd.go
generated
vendored
Normal file
@ -0,0 +1,227 @@
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Package sha1cd implements collision detection based on the whitepaper
|
||||
// Counter-cryptanalysis from Marc Stevens. The original ubc implementation
|
||||
// was done by Marc Stevens and Dan Shumow, and can be found at:
|
||||
// https://github.com/cr-marcstevens/sha1collisiondetection
|
||||
package sha1cd
|
||||
|
||||
// This SHA1 implementation is based on Go's generic SHA1.
|
||||
// Original: https://github.com/golang/go/blob/master/src/crypto/sha1/sha1.go
|
||||
|
||||
import (
|
||||
"crypto"
|
||||
"encoding/binary"
|
||||
"errors"
|
||||
"hash"
|
||||
|
||||
shared "github.com/pjbgf/sha1cd/internal"
|
||||
)
|
||||
|
||||
func init() {
|
||||
crypto.RegisterHash(crypto.SHA1, New)
|
||||
}
|
||||
|
||||
// The size of a SHA-1 checksum in bytes.
|
||||
const Size = shared.Size
|
||||
|
||||
// The blocksize of SHA-1 in bytes.
|
||||
const BlockSize = shared.Chunk
|
||||
|
||||
// digest represents the partial evaluation of a checksum.
|
||||
type digest struct {
|
||||
h [shared.WordBuffers]uint32
|
||||
x [shared.Chunk]byte
|
||||
nx int
|
||||
len uint64
|
||||
|
||||
// col defines whether a collision has been found.
|
||||
col bool
|
||||
blockFunc func(dig *digest, p []byte)
|
||||
}
|
||||
|
||||
func (d *digest) MarshalBinary() ([]byte, error) {
|
||||
b := make([]byte, 0, shared.MarshaledSize)
|
||||
b = append(b, shared.Magic...)
|
||||
b = appendUint32(b, d.h[0])
|
||||
b = appendUint32(b, d.h[1])
|
||||
b = appendUint32(b, d.h[2])
|
||||
b = appendUint32(b, d.h[3])
|
||||
b = appendUint32(b, d.h[4])
|
||||
b = append(b, d.x[:d.nx]...)
|
||||
b = b[:len(b)+len(d.x)-d.nx] // already zero
|
||||
b = appendUint64(b, d.len)
|
||||
return b, nil
|
||||
}
|
||||
|
||||
func appendUint32(b []byte, v uint32) []byte {
|
||||
return append(b,
|
||||
byte(v>>24),
|
||||
byte(v>>16),
|
||||
byte(v>>8),
|
||||
byte(v),
|
||||
)
|
||||
}
|
||||
|
||||
func appendUint64(b []byte, v uint64) []byte {
|
||||
return append(b,
|
||||
byte(v>>56),
|
||||
byte(v>>48),
|
||||
byte(v>>40),
|
||||
byte(v>>32),
|
||||
byte(v>>24),
|
||||
byte(v>>16),
|
||||
byte(v>>8),
|
||||
byte(v),
|
||||
)
|
||||
}
|
||||
|
||||
func (d *digest) UnmarshalBinary(b []byte) error {
|
||||
if len(b) < len(shared.Magic) || string(b[:len(shared.Magic)]) != shared.Magic {
|
||||
return errors.New("crypto/sha1: invalid hash state identifier")
|
||||
}
|
||||
if len(b) != shared.MarshaledSize {
|
||||
return errors.New("crypto/sha1: invalid hash state size")
|
||||
}
|
||||
b = b[len(shared.Magic):]
|
||||
b, d.h[0] = consumeUint32(b)
|
||||
b, d.h[1] = consumeUint32(b)
|
||||
b, d.h[2] = consumeUint32(b)
|
||||
b, d.h[3] = consumeUint32(b)
|
||||
b, d.h[4] = consumeUint32(b)
|
||||
b = b[copy(d.x[:], b):]
|
||||
b, d.len = consumeUint64(b)
|
||||
d.nx = int(d.len % shared.Chunk)
|
||||
return nil
|
||||
}
|
||||
|
||||
func consumeUint64(b []byte) ([]byte, uint64) {
|
||||
_ = b[7]
|
||||
x := uint64(b[7]) | uint64(b[6])<<8 | uint64(b[shared.WordBuffers])<<16 | uint64(b[4])<<24 |
|
||||
uint64(b[3])<<32 | uint64(b[2])<<40 | uint64(b[1])<<48 | uint64(b[0])<<56
|
||||
return b[8:], x
|
||||
}
|
||||
|
||||
func consumeUint32(b []byte) ([]byte, uint32) {
|
||||
_ = b[3]
|
||||
x := uint32(b[3]) | uint32(b[2])<<8 | uint32(b[1])<<16 | uint32(b[0])<<24
|
||||
return b[4:], x
|
||||
}
|
||||
|
||||
func (d *digest) Reset() {
|
||||
d.h[0] = shared.Init0
|
||||
d.h[1] = shared.Init1
|
||||
d.h[2] = shared.Init2
|
||||
d.h[3] = shared.Init3
|
||||
d.h[4] = shared.Init4
|
||||
d.nx = 0
|
||||
d.len = 0
|
||||
|
||||
d.col = false
|
||||
}
|
||||
|
||||
// New returns a new hash.Hash computing the SHA1 checksum. The Hash also
|
||||
// implements encoding.BinaryMarshaler and encoding.BinaryUnmarshaler to
|
||||
// marshal and unmarshal the internal state of the hash.
|
||||
func New() hash.Hash {
|
||||
d := new(digest)
|
||||
|
||||
d.blockFunc = block
|
||||
d.Reset()
|
||||
return d
|
||||
}
|
||||
|
||||
// NewGeneric is equivalent to New but uses the Go generic implementation,
|
||||
// avoiding any processor-specific optimizations.
|
||||
func NewGeneric() hash.Hash {
|
||||
d := new(digest)
|
||||
|
||||
d.blockFunc = blockGeneric
|
||||
d.Reset()
|
||||
return d
|
||||
}
|
||||
|
||||
func (d *digest) Size() int { return Size }
|
||||
|
||||
func (d *digest) BlockSize() int { return BlockSize }
|
||||
|
||||
func (d *digest) Write(p []byte) (nn int, err error) {
|
||||
if len(p) == 0 {
|
||||
return
|
||||
}
|
||||
|
||||
nn = len(p)
|
||||
d.len += uint64(nn)
|
||||
if d.nx > 0 {
|
||||
n := copy(d.x[d.nx:], p)
|
||||
d.nx += n
|
||||
if d.nx == shared.Chunk {
|
||||
d.blockFunc(d, d.x[:])
|
||||
d.nx = 0
|
||||
}
|
||||
p = p[n:]
|
||||
}
|
||||
if len(p) >= shared.Chunk {
|
||||
n := len(p) &^ (shared.Chunk - 1)
|
||||
d.blockFunc(d, p[:n])
|
||||
p = p[n:]
|
||||
}
|
||||
if len(p) > 0 {
|
||||
d.nx = copy(d.x[:], p)
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (d *digest) Sum(in []byte) []byte {
|
||||
// Make a copy of d so that caller can keep writing and summing.
|
||||
d0 := *d
|
||||
hash := d0.checkSum()
|
||||
return append(in, hash[:]...)
|
||||
}
|
||||
|
||||
func (d *digest) checkSum() [Size]byte {
|
||||
len := d.len
|
||||
// Padding. Add a 1 bit and 0 bits until 56 bytes mod 64.
|
||||
var tmp [64]byte
|
||||
tmp[0] = 0x80
|
||||
if len%64 < 56 {
|
||||
d.Write(tmp[0 : 56-len%64])
|
||||
} else {
|
||||
d.Write(tmp[0 : 64+56-len%64])
|
||||
}
|
||||
|
||||
// Length in bits.
|
||||
len <<= 3
|
||||
binary.BigEndian.PutUint64(tmp[:], len)
|
||||
d.Write(tmp[0:8])
|
||||
|
||||
if d.nx != 0 {
|
||||
panic("d.nx != 0")
|
||||
}
|
||||
|
||||
var digest [Size]byte
|
||||
|
||||
binary.BigEndian.PutUint32(digest[0:], d.h[0])
|
||||
binary.BigEndian.PutUint32(digest[4:], d.h[1])
|
||||
binary.BigEndian.PutUint32(digest[8:], d.h[2])
|
||||
binary.BigEndian.PutUint32(digest[12:], d.h[3])
|
||||
binary.BigEndian.PutUint32(digest[16:], d.h[4])
|
||||
|
||||
return digest
|
||||
}
|
||||
|
||||
// Sum returns the SHA-1 checksum of the data.
|
||||
func Sum(data []byte) ([Size]byte, bool) {
|
||||
d := New().(*digest)
|
||||
d.Write(data)
|
||||
return d.checkSum(), d.col
|
||||
}
|
||||
|
||||
func (d *digest) CollisionResistantSum(in []byte) ([]byte, bool) {
|
||||
// Make a copy of d so that caller can keep writing and summing.
|
||||
d0 := *d
|
||||
hash := d0.checkSum()
|
||||
return append(in, hash[:]...), d0.col
|
||||
}
|
50
vendor/github.com/pjbgf/sha1cd/sha1cdblock_amd64.go
generated
vendored
Normal file
50
vendor/github.com/pjbgf/sha1cd/sha1cdblock_amd64.go
generated
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
//go:build !noasm && gc && amd64
|
||||
// +build !noasm,gc,amd64
|
||||
|
||||
package sha1cd
|
||||
|
||||
import (
|
||||
"math"
|
||||
"unsafe"
|
||||
|
||||
shared "github.com/pjbgf/sha1cd/internal"
|
||||
)
|
||||
|
||||
type sliceHeader struct {
|
||||
base uintptr
|
||||
len int
|
||||
cap int
|
||||
}
|
||||
|
||||
// blockAMD64 hashes the message p into the current state in dig.
|
||||
// Both m1 and cs are used to store intermediate results which are used by the collision detection logic.
|
||||
//
|
||||
//go:noescape
|
||||
func blockAMD64(dig *digest, p sliceHeader, m1 []uint32, cs [][5]uint32)
|
||||
|
||||
func block(dig *digest, p []byte) {
|
||||
m1 := [shared.Rounds]uint32{}
|
||||
cs := [shared.PreStepState][shared.WordBuffers]uint32{}
|
||||
|
||||
for len(p) >= shared.Chunk {
|
||||
// Only send a block to be processed, as the collission detection
|
||||
// works on a block by block basis.
|
||||
ips := sliceHeader{
|
||||
base: uintptr(unsafe.Pointer(&p[0])),
|
||||
len: int(math.Min(float64(len(p)), float64(shared.Chunk))),
|
||||
cap: shared.Chunk,
|
||||
}
|
||||
|
||||
blockAMD64(dig, ips, m1[:], cs[:])
|
||||
|
||||
col := checkCollision(m1, cs, dig.h)
|
||||
if col {
|
||||
dig.col = true
|
||||
|
||||
blockAMD64(dig, ips, m1[:], cs[:])
|
||||
blockAMD64(dig, ips, m1[:], cs[:])
|
||||
}
|
||||
|
||||
p = p[shared.Chunk:]
|
||||
}
|
||||
}
|
2274
vendor/github.com/pjbgf/sha1cd/sha1cdblock_amd64.s
generated
vendored
Normal file
2274
vendor/github.com/pjbgf/sha1cd/sha1cdblock_amd64.s
generated
vendored
Normal file
File diff suppressed because it is too large
Load Diff
268
vendor/github.com/pjbgf/sha1cd/sha1cdblock_generic.go
generated
vendored
Normal file
268
vendor/github.com/pjbgf/sha1cd/sha1cdblock_generic.go
generated
vendored
Normal file
@ -0,0 +1,268 @@
|
||||
// Copyright 2009 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// Originally from: https://github.com/go/blob/master/src/crypto/sha1/sha1block.go
|
||||
// It has been modified to support collision detection.
|
||||
|
||||
package sha1cd
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/bits"
|
||||
|
||||
shared "github.com/pjbgf/sha1cd/internal"
|
||||
"github.com/pjbgf/sha1cd/ubc"
|
||||
)
|
||||
|
||||
// blockGeneric is a portable, pure Go version of the SHA-1 block step.
|
||||
// It's used by sha1block_generic.go and tests.
|
||||
func blockGeneric(dig *digest, p []byte) {
|
||||
var w [16]uint32
|
||||
|
||||
// cs stores the pre-step compression state for only the steps required for the
|
||||
// collision detection, which are 0, 58 and 65.
|
||||
// Refer to ubc/const.go for more details.
|
||||
cs := [shared.PreStepState][shared.WordBuffers]uint32{}
|
||||
|
||||
h0, h1, h2, h3, h4 := dig.h[0], dig.h[1], dig.h[2], dig.h[3], dig.h[4]
|
||||
for len(p) >= shared.Chunk {
|
||||
m1 := [shared.Rounds]uint32{}
|
||||
hi := 1
|
||||
|
||||
// Collision attacks are thwarted by hashing a detected near-collision block 3 times.
|
||||
// Think of it as extending SHA-1 from 80-steps to 240-steps for such blocks:
|
||||
// The best collision attacks against SHA-1 have complexity about 2^60,
|
||||
// thus for 240-steps an immediate lower-bound for the best cryptanalytic attacks would be 2^180.
|
||||
// An attacker would be better off using a generic birthday search of complexity 2^80.
|
||||
rehash:
|
||||
a, b, c, d, e := h0, h1, h2, h3, h4
|
||||
|
||||
// Each of the four 20-iteration rounds
|
||||
// differs only in the computation of f and
|
||||
// the choice of K (K0, K1, etc).
|
||||
i := 0
|
||||
|
||||
// Store pre-step compression state for the collision detection.
|
||||
cs[0] = [shared.WordBuffers]uint32{a, b, c, d, e}
|
||||
|
||||
for ; i < 16; i++ {
|
||||
// load step
|
||||
j := i * 4
|
||||
w[i] = uint32(p[j])<<24 | uint32(p[j+1])<<16 | uint32(p[j+2])<<8 | uint32(p[j+3])
|
||||
|
||||
f := b&c | (^b)&d
|
||||
t := bits.RotateLeft32(a, 5) + f + e + w[i&0xf] + shared.K0
|
||||
a, b, c, d, e = t, a, bits.RotateLeft32(b, 30), c, d
|
||||
|
||||
// Store compression state for the collision detection.
|
||||
m1[i] = w[i&0xf]
|
||||
}
|
||||
for ; i < 20; i++ {
|
||||
tmp := w[(i-3)&0xf] ^ w[(i-8)&0xf] ^ w[(i-14)&0xf] ^ w[(i)&0xf]
|
||||
w[i&0xf] = tmp<<1 | tmp>>(32-1)
|
||||
|
||||
f := b&c | (^b)&d
|
||||
t := bits.RotateLeft32(a, 5) + f + e + w[i&0xf] + shared.K0
|
||||
a, b, c, d, e = t, a, bits.RotateLeft32(b, 30), c, d
|
||||
|
||||
// Store compression state for the collision detection.
|
||||
m1[i] = w[i&0xf]
|
||||
}
|
||||
for ; i < 40; i++ {
|
||||
tmp := w[(i-3)&0xf] ^ w[(i-8)&0xf] ^ w[(i-14)&0xf] ^ w[(i)&0xf]
|
||||
w[i&0xf] = tmp<<1 | tmp>>(32-1)
|
||||
|
||||
f := b ^ c ^ d
|
||||
t := bits.RotateLeft32(a, 5) + f + e + w[i&0xf] + shared.K1
|
||||
a, b, c, d, e = t, a, bits.RotateLeft32(b, 30), c, d
|
||||
|
||||
// Store compression state for the collision detection.
|
||||
m1[i] = w[i&0xf]
|
||||
}
|
||||
for ; i < 60; i++ {
|
||||
if i == 58 {
|
||||
// Store pre-step compression state for the collision detection.
|
||||
cs[1] = [shared.WordBuffers]uint32{a, b, c, d, e}
|
||||
}
|
||||
|
||||
tmp := w[(i-3)&0xf] ^ w[(i-8)&0xf] ^ w[(i-14)&0xf] ^ w[(i)&0xf]
|
||||
w[i&0xf] = tmp<<1 | tmp>>(32-1)
|
||||
|
||||
f := ((b | c) & d) | (b & c)
|
||||
t := bits.RotateLeft32(a, 5) + f + e + w[i&0xf] + shared.K2
|
||||
a, b, c, d, e = t, a, bits.RotateLeft32(b, 30), c, d
|
||||
|
||||
// Store compression state for the collision detection.
|
||||
m1[i] = w[i&0xf]
|
||||
}
|
||||
for ; i < 80; i++ {
|
||||
if i == 65 {
|
||||
// Store pre-step compression state for the collision detection.
|
||||
cs[2] = [shared.WordBuffers]uint32{a, b, c, d, e}
|
||||
}
|
||||
|
||||
tmp := w[(i-3)&0xf] ^ w[(i-8)&0xf] ^ w[(i-14)&0xf] ^ w[(i)&0xf]
|
||||
w[i&0xf] = tmp<<1 | tmp>>(32-1)
|
||||
|
||||
f := b ^ c ^ d
|
||||
t := bits.RotateLeft32(a, 5) + f + e + w[i&0xf] + shared.K3
|
||||
a, b, c, d, e = t, a, bits.RotateLeft32(b, 30), c, d
|
||||
|
||||
// Store compression state for the collision detection.
|
||||
m1[i] = w[i&0xf]
|
||||
}
|
||||
|
||||
h0 += a
|
||||
h1 += b
|
||||
h2 += c
|
||||
h3 += d
|
||||
h4 += e
|
||||
|
||||
if hi == 2 {
|
||||
hi++
|
||||
goto rehash
|
||||
}
|
||||
|
||||
if hi == 1 {
|
||||
col := checkCollision(m1, cs, [shared.WordBuffers]uint32{h0, h1, h2, h3, h4})
|
||||
if col {
|
||||
dig.col = true
|
||||
hi++
|
||||
goto rehash
|
||||
}
|
||||
}
|
||||
|
||||
p = p[shared.Chunk:]
|
||||
}
|
||||
|
||||
dig.h[0], dig.h[1], dig.h[2], dig.h[3], dig.h[4] = h0, h1, h2, h3, h4
|
||||
}
|
||||
|
||||
func checkCollision(
|
||||
m1 [shared.Rounds]uint32,
|
||||
cs [shared.PreStepState][shared.WordBuffers]uint32,
|
||||
state [shared.WordBuffers]uint32) bool {
|
||||
|
||||
if mask := ubc.CalculateDvMask(m1); mask != 0 {
|
||||
dvs := ubc.SHA1_dvs()
|
||||
|
||||
for i := 0; dvs[i].DvType != 0; i++ {
|
||||
if (mask & ((uint32)(1) << uint32(dvs[i].MaskB))) != 0 {
|
||||
var csState [shared.WordBuffers]uint32
|
||||
switch dvs[i].TestT {
|
||||
case 58:
|
||||
csState = cs[1]
|
||||
case 65:
|
||||
csState = cs[2]
|
||||
case 0:
|
||||
csState = cs[0]
|
||||
default:
|
||||
panic(fmt.Sprintf("dvs data is trying to use a testT that isn't available: %d", dvs[i].TestT))
|
||||
}
|
||||
|
||||
col := hasCollided(
|
||||
dvs[i].TestT, // testT is the step number
|
||||
// m2 is a secondary message created XORing with
|
||||
// ubc's DM prior to the SHA recompression step.
|
||||
m1, dvs[i].Dm,
|
||||
csState,
|
||||
state)
|
||||
|
||||
if col {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func hasCollided(step uint32, m1, dm [shared.Rounds]uint32,
|
||||
state [shared.WordBuffers]uint32, h [shared.WordBuffers]uint32) bool {
|
||||
// Intermediary Hash Value.
|
||||
ihv := [shared.WordBuffers]uint32{}
|
||||
|
||||
a, b, c, d, e := state[0], state[1], state[2], state[3], state[4]
|
||||
|
||||
// Walk backwards from current step to undo previous compression.
|
||||
// The existing collision detection does not have dvs higher than 65,
|
||||
// start value of i accordingly.
|
||||
for i := uint32(64); i >= 60; i-- {
|
||||
a, b, c, d, e = b, c, d, e, a
|
||||
if step > i {
|
||||
b = bits.RotateLeft32(b, -30)
|
||||
f := b ^ c ^ d
|
||||
e -= bits.RotateLeft32(a, 5) + f + shared.K3 + (m1[i] ^ dm[i]) // m2 = m1 ^ dm.
|
||||
}
|
||||
}
|
||||
for i := uint32(59); i >= 40; i-- {
|
||||
a, b, c, d, e = b, c, d, e, a
|
||||
if step > i {
|
||||
b = bits.RotateLeft32(b, -30)
|
||||
f := ((b | c) & d) | (b & c)
|
||||
e -= bits.RotateLeft32(a, 5) + f + shared.K2 + (m1[i] ^ dm[i])
|
||||
}
|
||||
}
|
||||
for i := uint32(39); i >= 20; i-- {
|
||||
a, b, c, d, e = b, c, d, e, a
|
||||
if step > i {
|
||||
b = bits.RotateLeft32(b, -30)
|
||||
f := b ^ c ^ d
|
||||
e -= bits.RotateLeft32(a, 5) + f + shared.K1 + (m1[i] ^ dm[i])
|
||||
}
|
||||
}
|
||||
for i := uint32(20); i > 0; i-- {
|
||||
j := i - 1
|
||||
a, b, c, d, e = b, c, d, e, a
|
||||
if step > j {
|
||||
b = bits.RotateLeft32(b, -30) // undo the rotate left
|
||||
f := b&c | (^b)&d
|
||||
// subtract from e
|
||||
e -= bits.RotateLeft32(a, 5) + f + shared.K0 + (m1[j] ^ dm[j])
|
||||
}
|
||||
}
|
||||
|
||||
ihv[0] = a
|
||||
ihv[1] = b
|
||||
ihv[2] = c
|
||||
ihv[3] = d
|
||||
ihv[4] = e
|
||||
a = state[0]
|
||||
b = state[1]
|
||||
c = state[2]
|
||||
d = state[3]
|
||||
e = state[4]
|
||||
|
||||
// Recompress blocks based on the current step.
|
||||
// The existing collision detection does not have dvs below 58, so they have been removed
|
||||
// from the source code. If new dvs are added which target rounds below 40, that logic
|
||||
// will need to be readded here.
|
||||
for i := uint32(40); i < 60; i++ {
|
||||
if step <= i {
|
||||
f := ((b | c) & d) | (b & c)
|
||||
t := bits.RotateLeft32(a, 5) + f + e + shared.K2 + (m1[i] ^ dm[i])
|
||||
a, b, c, d, e = t, a, bits.RotateLeft32(b, 30), c, d
|
||||
}
|
||||
}
|
||||
for i := uint32(60); i < 80; i++ {
|
||||
if step <= i {
|
||||
f := b ^ c ^ d
|
||||
t := bits.RotateLeft32(a, 5) + f + e + shared.K3 + (m1[i] ^ dm[i])
|
||||
a, b, c, d, e = t, a, bits.RotateLeft32(b, 30), c, d
|
||||
}
|
||||
}
|
||||
|
||||
ihv[0] += a
|
||||
ihv[1] += b
|
||||
ihv[2] += c
|
||||
ihv[3] += d
|
||||
ihv[4] += e
|
||||
|
||||
if ((ihv[0] ^ h[0]) | (ihv[1] ^ h[1]) |
|
||||
(ihv[2] ^ h[2]) | (ihv[3] ^ h[3]) | (ihv[4] ^ h[4])) == 0 {
|
||||
return true
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
8
vendor/github.com/pjbgf/sha1cd/sha1cdblock_noasm.go
generated
vendored
Normal file
8
vendor/github.com/pjbgf/sha1cd/sha1cdblock_noasm.go
generated
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
//go:build !amd64 || noasm || !gc
|
||||
// +build !amd64 noasm !gc
|
||||
|
||||
package sha1cd
|
||||
|
||||
func block(dig *digest, p []byte) {
|
||||
blockGeneric(dig, p)
|
||||
}
|
368
vendor/github.com/pjbgf/sha1cd/ubc/check.go
generated
vendored
Normal file
368
vendor/github.com/pjbgf/sha1cd/ubc/check.go
generated
vendored
Normal file
@ -0,0 +1,368 @@
|
||||
// Based on the C implementation from Marc Stevens and Dan Shumow.
|
||||
// https://github.com/cr-marcstevens/sha1collisiondetection
|
||||
|
||||
package ubc
|
||||
|
||||
type DvInfo struct {
|
||||
// DvType, DvK and DvB define the DV: I(K,B) or II(K,B) (see the paper).
|
||||
// https://marc-stevens.nl/research/papers/C13-S.pdf
|
||||
DvType uint32
|
||||
DvK uint32
|
||||
DvB uint32
|
||||
|
||||
// TestT is the step to do the recompression from for collision detection.
|
||||
TestT uint32
|
||||
|
||||
// MaskI and MaskB define the bit to check for each DV in the dvmask returned by ubc_check.
|
||||
MaskI uint32
|
||||
MaskB uint32
|
||||
|
||||
// Dm is the expanded message block XOR-difference defined by the DV.
|
||||
Dm [80]uint32
|
||||
}
|
||||
|
||||
// CalculateDvMask takes as input an expanded message block and verifies the unavoidable bitconditions
|
||||
// for all listed DVs. It returns a dvmask where each bit belonging to a DV is set if all
|
||||
// unavoidable bitconditions for that DV have been met.
|
||||
// Thus, one needs to do the recompression check for each DV that has its bit set.
|
||||
func CalculateDvMask(W [80]uint32) uint32 {
|
||||
mask := uint32(0xFFFFFFFF)
|
||||
mask &= (((((W[44] ^ W[45]) >> 29) & 1) - 1) | ^(DV_I_48_0_bit | DV_I_51_0_bit | DV_I_52_0_bit | DV_II_45_0_bit | DV_II_46_0_bit | DV_II_50_0_bit | DV_II_51_0_bit))
|
||||
mask &= (((((W[49] ^ W[50]) >> 29) & 1) - 1) | ^(DV_I_46_0_bit | DV_II_45_0_bit | DV_II_50_0_bit | DV_II_51_0_bit | DV_II_55_0_bit | DV_II_56_0_bit))
|
||||
mask &= (((((W[48] ^ W[49]) >> 29) & 1) - 1) | ^(DV_I_45_0_bit | DV_I_52_0_bit | DV_II_49_0_bit | DV_II_50_0_bit | DV_II_54_0_bit | DV_II_55_0_bit))
|
||||
mask &= ((((W[47] ^ (W[50] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_47_0_bit | DV_I_49_0_bit | DV_I_51_0_bit | DV_II_45_0_bit | DV_II_51_0_bit | DV_II_56_0_bit))
|
||||
mask &= (((((W[47] ^ W[48]) >> 29) & 1) - 1) | ^(DV_I_44_0_bit | DV_I_51_0_bit | DV_II_48_0_bit | DV_II_49_0_bit | DV_II_53_0_bit | DV_II_54_0_bit))
|
||||
mask &= (((((W[46] >> 4) ^ (W[49] >> 29)) & 1) - 1) | ^(DV_I_46_0_bit | DV_I_48_0_bit | DV_I_50_0_bit | DV_I_52_0_bit | DV_II_50_0_bit | DV_II_55_0_bit))
|
||||
mask &= (((((W[46] ^ W[47]) >> 29) & 1) - 1) | ^(DV_I_43_0_bit | DV_I_50_0_bit | DV_II_47_0_bit | DV_II_48_0_bit | DV_II_52_0_bit | DV_II_53_0_bit))
|
||||
mask &= (((((W[45] >> 4) ^ (W[48] >> 29)) & 1) - 1) | ^(DV_I_45_0_bit | DV_I_47_0_bit | DV_I_49_0_bit | DV_I_51_0_bit | DV_II_49_0_bit | DV_II_54_0_bit))
|
||||
mask &= (((((W[45] ^ W[46]) >> 29) & 1) - 1) | ^(DV_I_49_0_bit | DV_I_52_0_bit | DV_II_46_0_bit | DV_II_47_0_bit | DV_II_51_0_bit | DV_II_52_0_bit))
|
||||
mask &= (((((W[44] >> 4) ^ (W[47] >> 29)) & 1) - 1) | ^(DV_I_44_0_bit | DV_I_46_0_bit | DV_I_48_0_bit | DV_I_50_0_bit | DV_II_48_0_bit | DV_II_53_0_bit))
|
||||
mask &= (((((W[43] >> 4) ^ (W[46] >> 29)) & 1) - 1) | ^(DV_I_43_0_bit | DV_I_45_0_bit | DV_I_47_0_bit | DV_I_49_0_bit | DV_II_47_0_bit | DV_II_52_0_bit))
|
||||
mask &= (((((W[43] ^ W[44]) >> 29) & 1) - 1) | ^(DV_I_47_0_bit | DV_I_50_0_bit | DV_I_51_0_bit | DV_II_45_0_bit | DV_II_49_0_bit | DV_II_50_0_bit))
|
||||
mask &= (((((W[42] >> 4) ^ (W[45] >> 29)) & 1) - 1) | ^(DV_I_44_0_bit | DV_I_46_0_bit | DV_I_48_0_bit | DV_I_52_0_bit | DV_II_46_0_bit | DV_II_51_0_bit))
|
||||
mask &= (((((W[41] >> 4) ^ (W[44] >> 29)) & 1) - 1) | ^(DV_I_43_0_bit | DV_I_45_0_bit | DV_I_47_0_bit | DV_I_51_0_bit | DV_II_45_0_bit | DV_II_50_0_bit))
|
||||
mask &= (((((W[40] ^ W[41]) >> 29) & 1) - 1) | ^(DV_I_44_0_bit | DV_I_47_0_bit | DV_I_48_0_bit | DV_II_46_0_bit | DV_II_47_0_bit | DV_II_56_0_bit))
|
||||
mask &= (((((W[54] ^ W[55]) >> 29) & 1) - 1) | ^(DV_I_51_0_bit | DV_II_47_0_bit | DV_II_50_0_bit | DV_II_55_0_bit | DV_II_56_0_bit))
|
||||
mask &= (((((W[53] ^ W[54]) >> 29) & 1) - 1) | ^(DV_I_50_0_bit | DV_II_46_0_bit | DV_II_49_0_bit | DV_II_54_0_bit | DV_II_55_0_bit))
|
||||
mask &= (((((W[52] ^ W[53]) >> 29) & 1) - 1) | ^(DV_I_49_0_bit | DV_II_45_0_bit | DV_II_48_0_bit | DV_II_53_0_bit | DV_II_54_0_bit))
|
||||
mask &= ((((W[50] ^ (W[53] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_50_0_bit | DV_I_52_0_bit | DV_II_46_0_bit | DV_II_48_0_bit | DV_II_54_0_bit))
|
||||
mask &= (((((W[50] ^ W[51]) >> 29) & 1) - 1) | ^(DV_I_47_0_bit | DV_II_46_0_bit | DV_II_51_0_bit | DV_II_52_0_bit | DV_II_56_0_bit))
|
||||
mask &= ((((W[49] ^ (W[52] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_49_0_bit | DV_I_51_0_bit | DV_II_45_0_bit | DV_II_47_0_bit | DV_II_53_0_bit))
|
||||
mask &= ((((W[48] ^ (W[51] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_48_0_bit | DV_I_50_0_bit | DV_I_52_0_bit | DV_II_46_0_bit | DV_II_52_0_bit))
|
||||
mask &= (((((W[42] ^ W[43]) >> 29) & 1) - 1) | ^(DV_I_46_0_bit | DV_I_49_0_bit | DV_I_50_0_bit | DV_II_48_0_bit | DV_II_49_0_bit))
|
||||
mask &= (((((W[41] ^ W[42]) >> 29) & 1) - 1) | ^(DV_I_45_0_bit | DV_I_48_0_bit | DV_I_49_0_bit | DV_II_47_0_bit | DV_II_48_0_bit))
|
||||
mask &= (((((W[40] >> 4) ^ (W[43] >> 29)) & 1) - 1) | ^(DV_I_44_0_bit | DV_I_46_0_bit | DV_I_50_0_bit | DV_II_49_0_bit | DV_II_56_0_bit))
|
||||
mask &= (((((W[39] >> 4) ^ (W[42] >> 29)) & 1) - 1) | ^(DV_I_43_0_bit | DV_I_45_0_bit | DV_I_49_0_bit | DV_II_48_0_bit | DV_II_55_0_bit))
|
||||
|
||||
if (mask & (DV_I_44_0_bit | DV_I_48_0_bit | DV_II_47_0_bit | DV_II_54_0_bit | DV_II_56_0_bit)) != 0 {
|
||||
mask &= (((((W[38] >> 4) ^ (W[41] >> 29)) & 1) - 1) | ^(DV_I_44_0_bit | DV_I_48_0_bit | DV_II_47_0_bit | DV_II_54_0_bit | DV_II_56_0_bit))
|
||||
}
|
||||
mask &= (((((W[37] >> 4) ^ (W[40] >> 29)) & 1) - 1) | ^(DV_I_43_0_bit | DV_I_47_0_bit | DV_II_46_0_bit | DV_II_53_0_bit | DV_II_55_0_bit))
|
||||
if (mask & (DV_I_52_0_bit | DV_II_48_0_bit | DV_II_51_0_bit | DV_II_56_0_bit)) != 0 {
|
||||
mask &= (((((W[55] ^ W[56]) >> 29) & 1) - 1) | ^(DV_I_52_0_bit | DV_II_48_0_bit | DV_II_51_0_bit | DV_II_56_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_52_0_bit | DV_II_48_0_bit | DV_II_50_0_bit | DV_II_56_0_bit)) != 0 {
|
||||
mask &= ((((W[52] ^ (W[55] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_52_0_bit | DV_II_48_0_bit | DV_II_50_0_bit | DV_II_56_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_51_0_bit | DV_II_47_0_bit | DV_II_49_0_bit | DV_II_55_0_bit)) != 0 {
|
||||
mask &= ((((W[51] ^ (W[54] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_51_0_bit | DV_II_47_0_bit | DV_II_49_0_bit | DV_II_55_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_48_0_bit | DV_II_47_0_bit | DV_II_52_0_bit | DV_II_53_0_bit)) != 0 {
|
||||
mask &= (((((W[51] ^ W[52]) >> 29) & 1) - 1) | ^(DV_I_48_0_bit | DV_II_47_0_bit | DV_II_52_0_bit | DV_II_53_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_46_0_bit | DV_I_49_0_bit | DV_II_45_0_bit | DV_II_48_0_bit)) != 0 {
|
||||
mask &= (((((W[36] >> 4) ^ (W[40] >> 29)) & 1) - 1) | ^(DV_I_46_0_bit | DV_I_49_0_bit | DV_II_45_0_bit | DV_II_48_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_52_0_bit | DV_II_48_0_bit | DV_II_49_0_bit)) != 0 {
|
||||
mask &= ((0 - (((W[53] ^ W[56]) >> 29) & 1)) | ^(DV_I_52_0_bit | DV_II_48_0_bit | DV_II_49_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_50_0_bit | DV_II_46_0_bit | DV_II_47_0_bit)) != 0 {
|
||||
mask &= ((0 - (((W[51] ^ W[54]) >> 29) & 1)) | ^(DV_I_50_0_bit | DV_II_46_0_bit | DV_II_47_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_49_0_bit | DV_I_51_0_bit | DV_II_45_0_bit)) != 0 {
|
||||
mask &= ((0 - (((W[50] ^ W[52]) >> 29) & 1)) | ^(DV_I_49_0_bit | DV_I_51_0_bit | DV_II_45_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_48_0_bit | DV_I_50_0_bit | DV_I_52_0_bit)) != 0 {
|
||||
mask &= ((0 - (((W[49] ^ W[51]) >> 29) & 1)) | ^(DV_I_48_0_bit | DV_I_50_0_bit | DV_I_52_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_47_0_bit | DV_I_49_0_bit | DV_I_51_0_bit)) != 0 {
|
||||
mask &= ((0 - (((W[48] ^ W[50]) >> 29) & 1)) | ^(DV_I_47_0_bit | DV_I_49_0_bit | DV_I_51_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_46_0_bit | DV_I_48_0_bit | DV_I_50_0_bit)) != 0 {
|
||||
mask &= ((0 - (((W[47] ^ W[49]) >> 29) & 1)) | ^(DV_I_46_0_bit | DV_I_48_0_bit | DV_I_50_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_45_0_bit | DV_I_47_0_bit | DV_I_49_0_bit)) != 0 {
|
||||
mask &= ((0 - (((W[46] ^ W[48]) >> 29) & 1)) | ^(DV_I_45_0_bit | DV_I_47_0_bit | DV_I_49_0_bit))
|
||||
}
|
||||
mask &= ((((W[45] ^ W[47]) & (1 << 6)) - (1 << 6)) | ^(DV_I_47_2_bit | DV_I_49_2_bit | DV_I_51_2_bit))
|
||||
if (mask & (DV_I_44_0_bit | DV_I_46_0_bit | DV_I_48_0_bit)) != 0 {
|
||||
mask &= ((0 - (((W[45] ^ W[47]) >> 29) & 1)) | ^(DV_I_44_0_bit | DV_I_46_0_bit | DV_I_48_0_bit))
|
||||
}
|
||||
mask &= (((((W[44] ^ W[46]) >> 6) & 1) - 1) | ^(DV_I_46_2_bit | DV_I_48_2_bit | DV_I_50_2_bit))
|
||||
if (mask & (DV_I_43_0_bit | DV_I_45_0_bit | DV_I_47_0_bit)) != 0 {
|
||||
mask &= ((0 - (((W[44] ^ W[46]) >> 29) & 1)) | ^(DV_I_43_0_bit | DV_I_45_0_bit | DV_I_47_0_bit))
|
||||
}
|
||||
mask &= ((0 - ((W[41] ^ (W[42] >> 5)) & (1 << 1))) | ^(DV_I_48_2_bit | DV_II_46_2_bit | DV_II_51_2_bit))
|
||||
mask &= ((0 - ((W[40] ^ (W[41] >> 5)) & (1 << 1))) | ^(DV_I_47_2_bit | DV_I_51_2_bit | DV_II_50_2_bit))
|
||||
if (mask & (DV_I_44_0_bit | DV_I_46_0_bit | DV_II_56_0_bit)) != 0 {
|
||||
mask &= ((0 - (((W[40] ^ W[42]) >> 4) & 1)) | ^(DV_I_44_0_bit | DV_I_46_0_bit | DV_II_56_0_bit))
|
||||
}
|
||||
mask &= ((0 - ((W[39] ^ (W[40] >> 5)) & (1 << 1))) | ^(DV_I_46_2_bit | DV_I_50_2_bit | DV_II_49_2_bit))
|
||||
if (mask & (DV_I_43_0_bit | DV_I_45_0_bit | DV_II_55_0_bit)) != 0 {
|
||||
mask &= ((0 - (((W[39] ^ W[41]) >> 4) & 1)) | ^(DV_I_43_0_bit | DV_I_45_0_bit | DV_II_55_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_44_0_bit | DV_II_54_0_bit | DV_II_56_0_bit)) != 0 {
|
||||
mask &= ((0 - (((W[38] ^ W[40]) >> 4) & 1)) | ^(DV_I_44_0_bit | DV_II_54_0_bit | DV_II_56_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_43_0_bit | DV_II_53_0_bit | DV_II_55_0_bit)) != 0 {
|
||||
mask &= ((0 - (((W[37] ^ W[39]) >> 4) & 1)) | ^(DV_I_43_0_bit | DV_II_53_0_bit | DV_II_55_0_bit))
|
||||
}
|
||||
mask &= ((0 - ((W[36] ^ (W[37] >> 5)) & (1 << 1))) | ^(DV_I_47_2_bit | DV_I_50_2_bit | DV_II_46_2_bit))
|
||||
if (mask & (DV_I_45_0_bit | DV_I_48_0_bit | DV_II_47_0_bit)) != 0 {
|
||||
mask &= (((((W[35] >> 4) ^ (W[39] >> 29)) & 1) - 1) | ^(DV_I_45_0_bit | DV_I_48_0_bit | DV_II_47_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_48_0_bit | DV_II_48_0_bit)) != 0 {
|
||||
mask &= ((0 - ((W[63] ^ (W[64] >> 5)) & (1 << 0))) | ^(DV_I_48_0_bit | DV_II_48_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_45_0_bit | DV_II_45_0_bit)) != 0 {
|
||||
mask &= ((0 - ((W[63] ^ (W[64] >> 5)) & (1 << 1))) | ^(DV_I_45_0_bit | DV_II_45_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_47_0_bit | DV_II_47_0_bit)) != 0 {
|
||||
mask &= ((0 - ((W[62] ^ (W[63] >> 5)) & (1 << 0))) | ^(DV_I_47_0_bit | DV_II_47_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_46_0_bit | DV_II_46_0_bit)) != 0 {
|
||||
mask &= ((0 - ((W[61] ^ (W[62] >> 5)) & (1 << 0))) | ^(DV_I_46_0_bit | DV_II_46_0_bit))
|
||||
}
|
||||
mask &= ((0 - ((W[61] ^ (W[62] >> 5)) & (1 << 2))) | ^(DV_I_46_2_bit | DV_II_46_2_bit))
|
||||
if (mask & (DV_I_45_0_bit | DV_II_45_0_bit)) != 0 {
|
||||
mask &= ((0 - ((W[60] ^ (W[61] >> 5)) & (1 << 0))) | ^(DV_I_45_0_bit | DV_II_45_0_bit))
|
||||
}
|
||||
if (mask & (DV_II_51_0_bit | DV_II_54_0_bit)) != 0 {
|
||||
mask &= (((((W[58] ^ W[59]) >> 29) & 1) - 1) | ^(DV_II_51_0_bit | DV_II_54_0_bit))
|
||||
}
|
||||
if (mask & (DV_II_50_0_bit | DV_II_53_0_bit)) != 0 {
|
||||
mask &= (((((W[57] ^ W[58]) >> 29) & 1) - 1) | ^(DV_II_50_0_bit | DV_II_53_0_bit))
|
||||
}
|
||||
if (mask & (DV_II_52_0_bit | DV_II_54_0_bit)) != 0 {
|
||||
mask &= ((((W[56] ^ (W[59] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_II_52_0_bit | DV_II_54_0_bit))
|
||||
}
|
||||
if (mask & (DV_II_51_0_bit | DV_II_52_0_bit)) != 0 {
|
||||
mask &= ((0 - (((W[56] ^ W[59]) >> 29) & 1)) | ^(DV_II_51_0_bit | DV_II_52_0_bit))
|
||||
}
|
||||
if (mask & (DV_II_49_0_bit | DV_II_52_0_bit)) != 0 {
|
||||
mask &= (((((W[56] ^ W[57]) >> 29) & 1) - 1) | ^(DV_II_49_0_bit | DV_II_52_0_bit))
|
||||
}
|
||||
if (mask & (DV_II_51_0_bit | DV_II_53_0_bit)) != 0 {
|
||||
mask &= ((((W[55] ^ (W[58] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_II_51_0_bit | DV_II_53_0_bit))
|
||||
}
|
||||
if (mask & (DV_II_50_0_bit | DV_II_52_0_bit)) != 0 {
|
||||
mask &= ((((W[54] ^ (W[57] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_II_50_0_bit | DV_II_52_0_bit))
|
||||
}
|
||||
if (mask & (DV_II_49_0_bit | DV_II_51_0_bit)) != 0 {
|
||||
mask &= ((((W[53] ^ (W[56] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_II_49_0_bit | DV_II_51_0_bit))
|
||||
}
|
||||
mask &= ((((W[51] ^ (W[50] >> 5)) & (1 << 1)) - (1 << 1)) | ^(DV_I_50_2_bit | DV_II_46_2_bit))
|
||||
mask &= ((((W[48] ^ W[50]) & (1 << 6)) - (1 << 6)) | ^(DV_I_50_2_bit | DV_II_46_2_bit))
|
||||
if (mask & (DV_I_51_0_bit | DV_I_52_0_bit)) != 0 {
|
||||
mask &= ((0 - (((W[48] ^ W[55]) >> 29) & 1)) | ^(DV_I_51_0_bit | DV_I_52_0_bit))
|
||||
}
|
||||
mask &= ((((W[47] ^ W[49]) & (1 << 6)) - (1 << 6)) | ^(DV_I_49_2_bit | DV_I_51_2_bit))
|
||||
mask &= ((((W[48] ^ (W[47] >> 5)) & (1 << 1)) - (1 << 1)) | ^(DV_I_47_2_bit | DV_II_51_2_bit))
|
||||
mask &= ((((W[46] ^ W[48]) & (1 << 6)) - (1 << 6)) | ^(DV_I_48_2_bit | DV_I_50_2_bit))
|
||||
mask &= ((((W[47] ^ (W[46] >> 5)) & (1 << 1)) - (1 << 1)) | ^(DV_I_46_2_bit | DV_II_50_2_bit))
|
||||
mask &= ((0 - ((W[44] ^ (W[45] >> 5)) & (1 << 1))) | ^(DV_I_51_2_bit | DV_II_49_2_bit))
|
||||
mask &= ((((W[43] ^ W[45]) & (1 << 6)) - (1 << 6)) | ^(DV_I_47_2_bit | DV_I_49_2_bit))
|
||||
mask &= (((((W[42] ^ W[44]) >> 6) & 1) - 1) | ^(DV_I_46_2_bit | DV_I_48_2_bit))
|
||||
mask &= ((((W[43] ^ (W[42] >> 5)) & (1 << 1)) - (1 << 1)) | ^(DV_II_46_2_bit | DV_II_51_2_bit))
|
||||
mask &= ((((W[42] ^ (W[41] >> 5)) & (1 << 1)) - (1 << 1)) | ^(DV_I_51_2_bit | DV_II_50_2_bit))
|
||||
mask &= ((((W[41] ^ (W[40] >> 5)) & (1 << 1)) - (1 << 1)) | ^(DV_I_50_2_bit | DV_II_49_2_bit))
|
||||
if (mask & (DV_I_52_0_bit | DV_II_51_0_bit)) != 0 {
|
||||
mask &= ((((W[39] ^ (W[43] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_52_0_bit | DV_II_51_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_51_0_bit | DV_II_50_0_bit)) != 0 {
|
||||
mask &= ((((W[38] ^ (W[42] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_51_0_bit | DV_II_50_0_bit))
|
||||
}
|
||||
if (mask & (DV_I_48_2_bit | DV_I_51_2_bit)) != 0 {
|
||||
mask &= ((0 - ((W[37] ^ (W[38] >> 5)) & (1 << 1))) | ^(DV_I_48_2_bit | DV_I_51_2_bit))
|
||||
}
|
||||
if (mask & (DV_I_50_0_bit | DV_II_49_0_bit)) != 0 {
|
||||
mask &= ((((W[37] ^ (W[41] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_50_0_bit | DV_II_49_0_bit))
|
||||
}
|
||||
if (mask & (DV_II_52_0_bit | DV_II_54_0_bit)) != 0 {
|
||||
mask &= ((0 - ((W[36] ^ W[38]) & (1 << 4))) | ^(DV_II_52_0_bit | DV_II_54_0_bit))
|
||||
}
|
||||
mask &= ((0 - ((W[35] ^ (W[36] >> 5)) & (1 << 1))) | ^(DV_I_46_2_bit | DV_I_49_2_bit))
|
||||
if (mask & (DV_I_51_0_bit | DV_II_47_0_bit)) != 0 {
|
||||
mask &= ((((W[35] ^ (W[39] >> 25)) & (1 << 3)) - (1 << 3)) | ^(DV_I_51_0_bit | DV_II_47_0_bit))
|
||||
}
|
||||
|
||||
if mask != 0 {
|
||||
if (mask & DV_I_43_0_bit) != 0 {
|
||||
if not((W[61]^(W[62]>>5))&(1<<1)) != 0 ||
|
||||
not(not((W[59]^(W[63]>>25))&(1<<5))) != 0 ||
|
||||
not((W[58]^(W[63]>>30))&(1<<0)) != 0 {
|
||||
mask &= ^DV_I_43_0_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_I_44_0_bit) != 0 {
|
||||
if not((W[62]^(W[63]>>5))&(1<<1)) != 0 ||
|
||||
not(not((W[60]^(W[64]>>25))&(1<<5))) != 0 ||
|
||||
not((W[59]^(W[64]>>30))&(1<<0)) != 0 {
|
||||
mask &= ^DV_I_44_0_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_I_46_2_bit) != 0 {
|
||||
mask &= ((^((W[40] ^ W[42]) >> 2)) | ^DV_I_46_2_bit)
|
||||
}
|
||||
if (mask & DV_I_47_2_bit) != 0 {
|
||||
if not((W[62]^(W[63]>>5))&(1<<2)) != 0 ||
|
||||
not(not((W[41]^W[43])&(1<<6))) != 0 {
|
||||
mask &= ^DV_I_47_2_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_I_48_2_bit) != 0 {
|
||||
if not((W[63]^(W[64]>>5))&(1<<2)) != 0 ||
|
||||
not(not((W[48]^(W[49]<<5))&(1<<6))) != 0 {
|
||||
mask &= ^DV_I_48_2_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_I_49_2_bit) != 0 {
|
||||
if not(not((W[49]^(W[50]<<5))&(1<<6))) != 0 ||
|
||||
not((W[42]^W[50])&(1<<1)) != 0 ||
|
||||
not(not((W[39]^(W[40]<<5))&(1<<6))) != 0 ||
|
||||
not((W[38]^W[40])&(1<<1)) != 0 {
|
||||
mask &= ^DV_I_49_2_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_I_50_0_bit) != 0 {
|
||||
mask &= (((W[36] ^ W[37]) << 7) | ^DV_I_50_0_bit)
|
||||
}
|
||||
if (mask & DV_I_50_2_bit) != 0 {
|
||||
mask &= (((W[43] ^ W[51]) << 11) | ^DV_I_50_2_bit)
|
||||
}
|
||||
if (mask & DV_I_51_0_bit) != 0 {
|
||||
mask &= (((W[37] ^ W[38]) << 9) | ^DV_I_51_0_bit)
|
||||
}
|
||||
if (mask & DV_I_51_2_bit) != 0 {
|
||||
if not(not((W[51]^(W[52]<<5))&(1<<6))) != 0 ||
|
||||
not(not((W[49]^W[51])&(1<<6))) != 0 ||
|
||||
not(not((W[37]^(W[37]>>5))&(1<<1))) != 0 ||
|
||||
not(not((W[35]^(W[39]>>25))&(1<<5))) != 0 {
|
||||
mask &= ^DV_I_51_2_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_I_52_0_bit) != 0 {
|
||||
mask &= (((W[38] ^ W[39]) << 11) | ^DV_I_52_0_bit)
|
||||
}
|
||||
if (mask & DV_II_46_2_bit) != 0 {
|
||||
mask &= (((W[47] ^ W[51]) << 17) | ^DV_II_46_2_bit)
|
||||
}
|
||||
if (mask & DV_II_48_0_bit) != 0 {
|
||||
if not(not((W[36]^(W[40]>>25))&(1<<3))) != 0 ||
|
||||
not((W[35]^(W[40]<<2))&(1<<30)) != 0 {
|
||||
mask &= ^DV_II_48_0_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_II_49_0_bit) != 0 {
|
||||
if not(not((W[37]^(W[41]>>25))&(1<<3))) != 0 ||
|
||||
not((W[36]^(W[41]<<2))&(1<<30)) != 0 {
|
||||
mask &= ^DV_II_49_0_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_II_49_2_bit) != 0 {
|
||||
if not(not((W[53]^(W[54]<<5))&(1<<6))) != 0 ||
|
||||
not(not((W[51]^W[53])&(1<<6))) != 0 ||
|
||||
not((W[50]^W[54])&(1<<1)) != 0 ||
|
||||
not(not((W[45]^(W[46]<<5))&(1<<6))) != 0 ||
|
||||
not(not((W[37]^(W[41]>>25))&(1<<5))) != 0 ||
|
||||
not((W[36]^(W[41]>>30))&(1<<0)) != 0 {
|
||||
mask &= ^DV_II_49_2_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_II_50_0_bit) != 0 {
|
||||
if not((W[55]^W[58])&(1<<29)) != 0 ||
|
||||
not(not((W[38]^(W[42]>>25))&(1<<3))) != 0 ||
|
||||
not((W[37]^(W[42]<<2))&(1<<30)) != 0 {
|
||||
mask &= ^DV_II_50_0_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_II_50_2_bit) != 0 {
|
||||
if not(not((W[54]^(W[55]<<5))&(1<<6))) != 0 ||
|
||||
not(not((W[52]^W[54])&(1<<6))) != 0 ||
|
||||
not((W[51]^W[55])&(1<<1)) != 0 ||
|
||||
not((W[45]^W[47])&(1<<1)) != 0 ||
|
||||
not(not((W[38]^(W[42]>>25))&(1<<5))) != 0 ||
|
||||
not((W[37]^(W[42]>>30))&(1<<0)) != 0 {
|
||||
mask &= ^DV_II_50_2_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_II_51_0_bit) != 0 {
|
||||
if not(not((W[39]^(W[43]>>25))&(1<<3))) != 0 ||
|
||||
not((W[38]^(W[43]<<2))&(1<<30)) != 0 {
|
||||
mask &= ^DV_II_51_0_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_II_51_2_bit) != 0 {
|
||||
if not(not((W[55]^(W[56]<<5))&(1<<6))) != 0 ||
|
||||
not(not((W[53]^W[55])&(1<<6))) != 0 ||
|
||||
not((W[52]^W[56])&(1<<1)) != 0 ||
|
||||
not((W[46]^W[48])&(1<<1)) != 0 ||
|
||||
not(not((W[39]^(W[43]>>25))&(1<<5))) != 0 ||
|
||||
not((W[38]^(W[43]>>30))&(1<<0)) != 0 {
|
||||
mask &= ^DV_II_51_2_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_II_52_0_bit) != 0 {
|
||||
if not(not((W[59]^W[60])&(1<<29))) != 0 ||
|
||||
not(not((W[40]^(W[44]>>25))&(1<<3))) != 0 ||
|
||||
not(not((W[40]^(W[44]>>25))&(1<<4))) != 0 ||
|
||||
not((W[39]^(W[44]<<2))&(1<<30)) != 0 {
|
||||
mask &= ^DV_II_52_0_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_II_53_0_bit) != 0 {
|
||||
if not((W[58]^W[61])&(1<<29)) != 0 ||
|
||||
not(not((W[57]^(W[61]>>25))&(1<<4))) != 0 ||
|
||||
not(not((W[41]^(W[45]>>25))&(1<<3))) != 0 ||
|
||||
not(not((W[41]^(W[45]>>25))&(1<<4))) != 0 {
|
||||
mask &= ^DV_II_53_0_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_II_54_0_bit) != 0 {
|
||||
if not(not((W[58]^(W[62]>>25))&(1<<4))) != 0 ||
|
||||
not(not((W[42]^(W[46]>>25))&(1<<3))) != 0 ||
|
||||
not(not((W[42]^(W[46]>>25))&(1<<4))) != 0 {
|
||||
mask &= ^DV_II_54_0_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_II_55_0_bit) != 0 {
|
||||
if not(not((W[59]^(W[63]>>25))&(1<<4))) != 0 ||
|
||||
not(not((W[57]^(W[59]>>25))&(1<<4))) != 0 ||
|
||||
not(not((W[43]^(W[47]>>25))&(1<<3))) != 0 ||
|
||||
not(not((W[43]^(W[47]>>25))&(1<<4))) != 0 {
|
||||
mask &= ^DV_II_55_0_bit
|
||||
}
|
||||
}
|
||||
if (mask & DV_II_56_0_bit) != 0 {
|
||||
if not(not((W[60]^(W[64]>>25))&(1<<4))) != 0 ||
|
||||
not(not((W[44]^(W[48]>>25))&(1<<3))) != 0 ||
|
||||
not(not((W[44]^(W[48]>>25))&(1<<4))) != 0 {
|
||||
mask &= ^DV_II_56_0_bit
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return mask
|
||||
}
|
||||
|
||||
func not(x uint32) uint32 {
|
||||
if x == 0 {
|
||||
return 1
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
func SHA1_dvs() []DvInfo {
|
||||
return sha1_dvs
|
||||
}
|
624
vendor/github.com/pjbgf/sha1cd/ubc/const.go
generated
vendored
Normal file
624
vendor/github.com/pjbgf/sha1cd/ubc/const.go
generated
vendored
Normal file
@ -0,0 +1,624 @@
|
||||
// Based on the C implementation from Marc Stevens and Dan Shumow.
|
||||
// https://github.com/cr-marcstevens/sha1collisiondetection
|
||||
|
||||
package ubc
|
||||
|
||||
const (
|
||||
CheckSize = 80
|
||||
|
||||
DV_I_43_0_bit = (uint32)(1 << 0)
|
||||
DV_I_44_0_bit = (uint32)(1 << 1)
|
||||
DV_I_45_0_bit = (uint32)(1 << 2)
|
||||
DV_I_46_0_bit = (uint32)(1 << 3)
|
||||
DV_I_46_2_bit = (uint32)(1 << 4)
|
||||
DV_I_47_0_bit = (uint32)(1 << 5)
|
||||
DV_I_47_2_bit = (uint32)(1 << 6)
|
||||
DV_I_48_0_bit = (uint32)(1 << 7)
|
||||
DV_I_48_2_bit = (uint32)(1 << 8)
|
||||
DV_I_49_0_bit = (uint32)(1 << 9)
|
||||
DV_I_49_2_bit = (uint32)(1 << 10)
|
||||
DV_I_50_0_bit = (uint32)(1 << 11)
|
||||
DV_I_50_2_bit = (uint32)(1 << 12)
|
||||
DV_I_51_0_bit = (uint32)(1 << 13)
|
||||
DV_I_51_2_bit = (uint32)(1 << 14)
|
||||
DV_I_52_0_bit = (uint32)(1 << 15)
|
||||
DV_II_45_0_bit = (uint32)(1 << 16)
|
||||
DV_II_46_0_bit = (uint32)(1 << 17)
|
||||
DV_II_46_2_bit = (uint32)(1 << 18)
|
||||
DV_II_47_0_bit = (uint32)(1 << 19)
|
||||
DV_II_48_0_bit = (uint32)(1 << 20)
|
||||
DV_II_49_0_bit = (uint32)(1 << 21)
|
||||
DV_II_49_2_bit = (uint32)(1 << 22)
|
||||
DV_II_50_0_bit = (uint32)(1 << 23)
|
||||
DV_II_50_2_bit = (uint32)(1 << 24)
|
||||
DV_II_51_0_bit = (uint32)(1 << 25)
|
||||
DV_II_51_2_bit = (uint32)(1 << 26)
|
||||
DV_II_52_0_bit = (uint32)(1 << 27)
|
||||
DV_II_53_0_bit = (uint32)(1 << 28)
|
||||
DV_II_54_0_bit = (uint32)(1 << 29)
|
||||
DV_II_55_0_bit = (uint32)(1 << 30)
|
||||
DV_II_56_0_bit = (uint32)(1 << 31)
|
||||
)
|
||||
|
||||
// sha1_dvs contains a list of SHA-1 Disturbance Vectors (DV) which defines the
|
||||
// unavoidable bit conditions when a collision attack is in progress.
|
||||
var sha1_dvs = []DvInfo{
|
||||
{
|
||||
DvType: 1, DvK: 43, DvB: 0, TestT: 58, MaskI: 0, MaskB: 0,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x08000000, 0x9800000c, 0xd8000010, 0x08000010, 0xb8000010, 0x98000000, 0x60000000,
|
||||
0x00000008, 0xc0000000, 0x90000014, 0x10000010, 0xb8000014, 0x28000000, 0x20000010,
|
||||
0x48000000, 0x08000018, 0x60000000, 0x90000010, 0xf0000010, 0x90000008, 0xc0000000,
|
||||
0x90000010, 0xf0000010, 0xb0000008, 0x40000000, 0x90000000, 0xf0000010, 0x90000018,
|
||||
0x60000000, 0x90000010, 0x90000010, 0x90000000, 0x80000000, 0x00000010, 0xa0000000,
|
||||
0x20000000, 0xa0000000, 0x20000010, 0x00000000, 0x20000010, 0x20000000, 0x00000010,
|
||||
0x20000000, 0x00000010, 0xa0000000, 0x00000000, 0x20000000, 0x20000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000001, 0x00000020, 0x00000001, 0x40000002, 0x40000040,
|
||||
0x40000002, 0x80000004, 0x80000080, 0x80000006, 0x00000049, 0x00000103, 0x80000009,
|
||||
0x80000012, 0x80000202, 0x00000018, 0x00000164, 0x00000408, 0x800000e6, 0x8000004c,
|
||||
0x00000803, 0x80000161, 0x80000599},
|
||||
}, {
|
||||
DvType: 1, DvK: 44, DvB: 0, TestT: 58, MaskI: 0, MaskB: 1,
|
||||
Dm: [CheckSize]uint32{
|
||||
0xb4000008, 0x08000000, 0x9800000c, 0xd8000010, 0x08000010, 0xb8000010, 0x98000000,
|
||||
0x60000000, 0x00000008, 0xc0000000, 0x90000014, 0x10000010, 0xb8000014, 0x28000000,
|
||||
0x20000010, 0x48000000, 0x08000018, 0x60000000, 0x90000010, 0xf0000010, 0x90000008,
|
||||
0xc0000000, 0x90000010, 0xf0000010, 0xb0000008, 0x40000000, 0x90000000, 0xf0000010,
|
||||
0x90000018, 0x60000000, 0x90000010, 0x90000010, 0x90000000, 0x80000000, 0x00000010,
|
||||
0xa0000000, 0x20000000, 0xa0000000, 0x20000010, 0x00000000, 0x20000010, 0x20000000,
|
||||
0x00000010, 0x20000000, 0x00000010, 0xa0000000, 0x00000000, 0x20000000, 0x20000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000020, 0x00000001, 0x40000002,
|
||||
0x40000040, 0x40000002, 0x80000004, 0x80000080, 0x80000006, 0x00000049, 0x00000103,
|
||||
0x80000009, 0x80000012, 0x80000202, 0x00000018, 0x00000164, 0x00000408, 0x800000e6,
|
||||
0x8000004c, 0x00000803, 0x80000161},
|
||||
},
|
||||
{
|
||||
DvType: 1, DvK: 45, DvB: 0, TestT: 58, MaskI: 0, MaskB: 2,
|
||||
Dm: [CheckSize]uint32{
|
||||
0xf4000014, 0xb4000008, 0x08000000, 0x9800000c, 0xd8000010, 0x08000010, 0xb8000010,
|
||||
0x98000000, 0x60000000, 0x00000008, 0xc0000000, 0x90000014, 0x10000010, 0xb8000014,
|
||||
0x28000000, 0x20000010, 0x48000000, 0x08000018, 0x60000000, 0x90000010, 0xf0000010,
|
||||
0x90000008, 0xc0000000, 0x90000010, 0xf0000010, 0xb0000008, 0x40000000, 0x90000000,
|
||||
0xf0000010, 0x90000018, 0x60000000, 0x90000010, 0x90000010, 0x90000000, 0x80000000,
|
||||
0x00000010, 0xa0000000, 0x20000000, 0xa0000000, 0x20000010, 0x00000000, 0x20000010,
|
||||
0x20000000, 0x00000010, 0x20000000, 0x00000010, 0xa0000000, 0x00000000, 0x20000000,
|
||||
0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000020, 0x00000001,
|
||||
0x40000002, 0x40000040, 0x40000002, 0x80000004, 0x80000080, 0x80000006, 0x00000049,
|
||||
0x00000103, 0x80000009, 0x80000012, 0x80000202, 0x00000018, 0x00000164, 0x00000408,
|
||||
0x800000e6, 0x8000004c, 0x00000803},
|
||||
},
|
||||
{
|
||||
DvType: 1, DvK: 46, DvB: 0, TestT: 58, MaskI: 0, MaskB: 3,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x2c000010, 0xf4000014, 0xb4000008, 0x08000000, 0x9800000c, 0xd8000010, 0x08000010,
|
||||
0xb8000010, 0x98000000, 0x60000000, 0x00000008, 0xc0000000, 0x90000014, 0x10000010,
|
||||
0xb8000014, 0x28000000, 0x20000010, 0x48000000, 0x08000018, 0x60000000, 0x90000010,
|
||||
0xf0000010, 0x90000008, 0xc0000000, 0x90000010, 0xf0000010, 0xb0000008, 0x40000000,
|
||||
0x90000000, 0xf0000010, 0x90000018, 0x60000000, 0x90000010, 0x90000010, 0x90000000,
|
||||
0x80000000, 0x00000010, 0xa0000000, 0x20000000, 0xa0000000, 0x20000010, 0x00000000,
|
||||
0x20000010, 0x20000000, 0x00000010, 0x20000000, 0x00000010, 0xa0000000, 0x00000000,
|
||||
0x20000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000020,
|
||||
0x00000001, 0x40000002, 0x40000040, 0x40000002, 0x80000004, 0x80000080, 0x80000006,
|
||||
0x00000049, 0x00000103, 0x80000009, 0x80000012, 0x80000202, 0x00000018, 0x00000164,
|
||||
0x00000408, 0x800000e6, 0x8000004c},
|
||||
},
|
||||
{
|
||||
DvType: 1, DvK: 46, DvB: 2, TestT: 58, MaskI: 0, MaskB: 4,
|
||||
Dm: [CheckSize]uint32{
|
||||
0xb0000040, 0xd0000053, 0xd0000022, 0x20000000, 0x60000032, 0x60000043,
|
||||
0x20000040, 0xe0000042, 0x60000002, 0x80000001, 0x00000020, 0x00000003,
|
||||
0x40000052, 0x40000040, 0xe0000052, 0xa0000000, 0x80000040, 0x20000001,
|
||||
0x20000060, 0x80000001, 0x40000042, 0xc0000043, 0x40000022, 0x00000003,
|
||||
0x40000042, 0xc0000043, 0xc0000022, 0x00000001, 0x40000002, 0xc0000043,
|
||||
0x40000062, 0x80000001, 0x40000042, 0x40000042, 0x40000002, 0x00000002,
|
||||
0x00000040, 0x80000002, 0x80000000, 0x80000002, 0x80000040, 0x00000000,
|
||||
0x80000040, 0x80000000, 0x00000040, 0x80000000, 0x00000040, 0x80000002,
|
||||
0x00000000, 0x80000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000004, 0x00000080, 0x00000004, 0x00000009, 0x00000101,
|
||||
0x00000009, 0x00000012, 0x00000202, 0x0000001a, 0x00000124, 0x0000040c,
|
||||
0x00000026, 0x0000004a, 0x0000080a, 0x00000060, 0x00000590, 0x00001020,
|
||||
0x0000039a, 0x00000132},
|
||||
},
|
||||
{
|
||||
DvType: 1, DvK: 47, DvB: 0, TestT: 58, MaskI: 0, MaskB: 5,
|
||||
Dm: [CheckSize]uint32{
|
||||
0xc8000010, 0x2c000010, 0xf4000014, 0xb4000008, 0x08000000, 0x9800000c,
|
||||
0xd8000010, 0x08000010, 0xb8000010, 0x98000000, 0x60000000, 0x00000008,
|
||||
0xc0000000, 0x90000014, 0x10000010, 0xb8000014, 0x28000000, 0x20000010,
|
||||
0x48000000, 0x08000018, 0x60000000, 0x90000010, 0xf0000010, 0x90000008,
|
||||
0xc0000000, 0x90000010, 0xf0000010, 0xb0000008, 0x40000000, 0x90000000,
|
||||
0xf0000010, 0x90000018, 0x60000000, 0x90000010, 0x90000010, 0x90000000,
|
||||
0x80000000, 0x00000010, 0xa0000000, 0x20000000, 0xa0000000, 0x20000010,
|
||||
0x00000000, 0x20000010, 0x20000000, 0x00000010, 0x20000000, 0x00000010,
|
||||
0xa0000000, 0x00000000, 0x20000000, 0x20000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000001, 0x00000020, 0x00000001, 0x40000002,
|
||||
0x40000040, 0x40000002, 0x80000004, 0x80000080, 0x80000006, 0x00000049,
|
||||
0x00000103, 0x80000009, 0x80000012, 0x80000202, 0x00000018, 0x00000164,
|
||||
0x00000408, 0x800000e6},
|
||||
},
|
||||
{
|
||||
DvType: 1, DvK: 47, DvB: 2, TestT: 58, MaskI: 0, MaskB: 6,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x20000043, 0xb0000040, 0xd0000053, 0xd0000022, 0x20000000, 0x60000032,
|
||||
0x60000043, 0x20000040, 0xe0000042, 0x60000002, 0x80000001, 0x00000020,
|
||||
0x00000003, 0x40000052, 0x40000040, 0xe0000052, 0xa0000000, 0x80000040,
|
||||
0x20000001, 0x20000060, 0x80000001, 0x40000042, 0xc0000043, 0x40000022,
|
||||
0x00000003, 0x40000042, 0xc0000043, 0xc0000022, 0x00000001, 0x40000002,
|
||||
0xc0000043, 0x40000062, 0x80000001, 0x40000042, 0x40000042, 0x40000002,
|
||||
0x00000002, 0x00000040, 0x80000002, 0x80000000, 0x80000002, 0x80000040,
|
||||
0x00000000, 0x80000040, 0x80000000, 0x00000040, 0x80000000, 0x00000040,
|
||||
0x80000002, 0x00000000, 0x80000000, 0x80000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000004, 0x00000080, 0x00000004, 0x00000009,
|
||||
0x00000101, 0x00000009, 0x00000012, 0x00000202, 0x0000001a, 0x00000124,
|
||||
0x0000040c, 0x00000026, 0x0000004a, 0x0000080a, 0x00000060, 0x00000590,
|
||||
0x00001020, 0x0000039a,
|
||||
},
|
||||
},
|
||||
{
|
||||
DvType: 1, DvK: 48, DvB: 0, TestT: 58, MaskI: 0, MaskB: 7,
|
||||
Dm: [CheckSize]uint32{
|
||||
0xb800000a, 0xc8000010, 0x2c000010, 0xf4000014, 0xb4000008, 0x08000000,
|
||||
0x9800000c, 0xd8000010, 0x08000010, 0xb8000010, 0x98000000, 0x60000000,
|
||||
0x00000008, 0xc0000000, 0x90000014, 0x10000010, 0xb8000014, 0x28000000,
|
||||
0x20000010, 0x48000000, 0x08000018, 0x60000000, 0x90000010, 0xf0000010,
|
||||
0x90000008, 0xc0000000, 0x90000010, 0xf0000010, 0xb0000008, 0x40000000,
|
||||
0x90000000, 0xf0000010, 0x90000018, 0x60000000, 0x90000010, 0x90000010,
|
||||
0x90000000, 0x80000000, 0x00000010, 0xa0000000, 0x20000000, 0xa0000000,
|
||||
0x20000010, 0x00000000, 0x20000010, 0x20000000, 0x00000010, 0x20000000,
|
||||
0x00000010, 0xa0000000, 0x00000000, 0x20000000, 0x20000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000020, 0x00000001,
|
||||
0x40000002, 0x40000040, 0x40000002, 0x80000004, 0x80000080, 0x80000006,
|
||||
0x00000049, 0x00000103, 0x80000009, 0x80000012, 0x80000202, 0x00000018,
|
||||
0x00000164, 0x00000408,
|
||||
},
|
||||
},
|
||||
{
|
||||
DvType: 1, DvK: 48, DvB: 2, TestT: 58, MaskI: 0, MaskB: 8,
|
||||
Dm: [CheckSize]uint32{
|
||||
0xe000002a, 0x20000043, 0xb0000040, 0xd0000053, 0xd0000022, 0x20000000,
|
||||
0x60000032, 0x60000043, 0x20000040, 0xe0000042, 0x60000002, 0x80000001,
|
||||
0x00000020, 0x00000003, 0x40000052, 0x40000040, 0xe0000052, 0xa0000000,
|
||||
0x80000040, 0x20000001, 0x20000060, 0x80000001, 0x40000042, 0xc0000043,
|
||||
0x40000022, 0x00000003, 0x40000042, 0xc0000043, 0xc0000022, 0x00000001,
|
||||
0x40000002, 0xc0000043, 0x40000062, 0x80000001, 0x40000042, 0x40000042,
|
||||
0x40000002, 0x00000002, 0x00000040, 0x80000002, 0x80000000, 0x80000002,
|
||||
0x80000040, 0x00000000, 0x80000040, 0x80000000, 0x00000040, 0x80000000,
|
||||
0x00000040, 0x80000002, 0x00000000, 0x80000000, 0x80000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000080, 0x00000004,
|
||||
0x00000009, 0x00000101, 0x00000009, 0x00000012, 0x00000202, 0x0000001a,
|
||||
0x00000124, 0x0000040c, 0x00000026, 0x0000004a, 0x0000080a, 0x00000060,
|
||||
0x00000590, 0x00001020},
|
||||
},
|
||||
{
|
||||
DvType: 1, DvK: 49, DvB: 0, TestT: 58, MaskI: 0, MaskB: 9,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x18000000, 0xb800000a, 0xc8000010, 0x2c000010, 0xf4000014, 0xb4000008,
|
||||
0x08000000, 0x9800000c, 0xd8000010, 0x08000010, 0xb8000010, 0x98000000,
|
||||
0x60000000, 0x00000008, 0xc0000000, 0x90000014, 0x10000010, 0xb8000014,
|
||||
0x28000000, 0x20000010, 0x48000000, 0x08000018, 0x60000000, 0x90000010,
|
||||
0xf0000010, 0x90000008, 0xc0000000, 0x90000010, 0xf0000010, 0xb0000008,
|
||||
0x40000000, 0x90000000, 0xf0000010, 0x90000018, 0x60000000, 0x90000010,
|
||||
0x90000010, 0x90000000, 0x80000000, 0x00000010, 0xa0000000, 0x20000000,
|
||||
0xa0000000, 0x20000010, 0x00000000, 0x20000010, 0x20000000, 0x00000010,
|
||||
0x20000000, 0x00000010, 0xa0000000, 0x00000000, 0x20000000, 0x20000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000020,
|
||||
0x00000001, 0x40000002, 0x40000040, 0x40000002, 0x80000004, 0x80000080,
|
||||
0x80000006, 0x00000049, 0x00000103, 0x80000009, 0x80000012, 0x80000202,
|
||||
0x00000018, 0x00000164},
|
||||
},
|
||||
{
|
||||
DvType: 1, DvK: 49, DvB: 2, TestT: 58, MaskI: 0, MaskB: 10,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x60000000, 0xe000002a, 0x20000043, 0xb0000040, 0xd0000053, 0xd0000022,
|
||||
0x20000000, 0x60000032, 0x60000043, 0x20000040, 0xe0000042, 0x60000002,
|
||||
0x80000001, 0x00000020, 0x00000003, 0x40000052, 0x40000040, 0xe0000052,
|
||||
0xa0000000, 0x80000040, 0x20000001, 0x20000060, 0x80000001, 0x40000042,
|
||||
0xc0000043, 0x40000022, 0x00000003, 0x40000042, 0xc0000043, 0xc0000022,
|
||||
0x00000001, 0x40000002, 0xc0000043, 0x40000062, 0x80000001, 0x40000042,
|
||||
0x40000042, 0x40000002, 0x00000002, 0x00000040, 0x80000002, 0x80000000,
|
||||
0x80000002, 0x80000040, 0x00000000, 0x80000040, 0x80000000, 0x00000040,
|
||||
0x80000000, 0x00000040, 0x80000002, 0x00000000, 0x80000000, 0x80000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000080,
|
||||
0x00000004, 0x00000009, 0x00000101, 0x00000009, 0x00000012, 0x00000202,
|
||||
0x0000001a, 0x00000124, 0x0000040c, 0x00000026, 0x0000004a, 0x0000080a,
|
||||
0x00000060, 0x00000590},
|
||||
},
|
||||
{
|
||||
DvType: 1, DvK: 50, DvB: 0, TestT: 65, MaskI: 0, MaskB: 11,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x0800000c, 0x18000000, 0xb800000a, 0xc8000010, 0x2c000010, 0xf4000014,
|
||||
0xb4000008, 0x08000000, 0x9800000c, 0xd8000010, 0x08000010, 0xb8000010,
|
||||
0x98000000, 0x60000000, 0x00000008, 0xc0000000, 0x90000014, 0x10000010,
|
||||
0xb8000014, 0x28000000, 0x20000010, 0x48000000, 0x08000018, 0x60000000,
|
||||
0x90000010, 0xf0000010, 0x90000008, 0xc0000000, 0x90000010, 0xf0000010,
|
||||
0xb0000008, 0x40000000, 0x90000000, 0xf0000010, 0x90000018, 0x60000000,
|
||||
0x90000010, 0x90000010, 0x90000000, 0x80000000, 0x00000010, 0xa0000000,
|
||||
0x20000000, 0xa0000000, 0x20000010, 0x00000000, 0x20000010, 0x20000000,
|
||||
0x00000010, 0x20000000, 0x00000010, 0xa0000000, 0x00000000, 0x20000000,
|
||||
0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
|
||||
0x00000020, 0x00000001, 0x40000002, 0x40000040, 0x40000002, 0x80000004,
|
||||
0x80000080, 0x80000006, 0x00000049, 0x00000103, 0x80000009, 0x80000012,
|
||||
0x80000202, 0x00000018,
|
||||
},
|
||||
},
|
||||
{
|
||||
DvType: 1, DvK: 50, DvB: 2, TestT: 65, MaskI: 0, MaskB: 12,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x20000030, 0x60000000, 0xe000002a, 0x20000043, 0xb0000040, 0xd0000053,
|
||||
0xd0000022, 0x20000000, 0x60000032, 0x60000043, 0x20000040, 0xe0000042,
|
||||
0x60000002, 0x80000001, 0x00000020, 0x00000003, 0x40000052, 0x40000040,
|
||||
0xe0000052, 0xa0000000, 0x80000040, 0x20000001, 0x20000060, 0x80000001,
|
||||
0x40000042, 0xc0000043, 0x40000022, 0x00000003, 0x40000042, 0xc0000043,
|
||||
0xc0000022, 0x00000001, 0x40000002, 0xc0000043, 0x40000062, 0x80000001,
|
||||
0x40000042, 0x40000042, 0x40000002, 0x00000002, 0x00000040, 0x80000002,
|
||||
0x80000000, 0x80000002, 0x80000040, 0x00000000, 0x80000040, 0x80000000,
|
||||
0x00000040, 0x80000000, 0x00000040, 0x80000002, 0x00000000, 0x80000000,
|
||||
0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000004,
|
||||
0x00000080, 0x00000004, 0x00000009, 0x00000101, 0x00000009, 0x00000012,
|
||||
0x00000202, 0x0000001a, 0x00000124, 0x0000040c, 0x00000026, 0x0000004a,
|
||||
0x0000080a, 0x00000060},
|
||||
},
|
||||
{
|
||||
DvType: 1, DvK: 51, DvB: 0, TestT: 65, MaskI: 0, MaskB: 13,
|
||||
Dm: [CheckSize]uint32{
|
||||
0xe8000000, 0x0800000c, 0x18000000, 0xb800000a, 0xc8000010, 0x2c000010,
|
||||
0xf4000014, 0xb4000008, 0x08000000, 0x9800000c, 0xd8000010, 0x08000010,
|
||||
0xb8000010, 0x98000000, 0x60000000, 0x00000008, 0xc0000000, 0x90000014,
|
||||
0x10000010, 0xb8000014, 0x28000000, 0x20000010, 0x48000000, 0x08000018,
|
||||
0x60000000, 0x90000010, 0xf0000010, 0x90000008, 0xc0000000, 0x90000010,
|
||||
0xf0000010, 0xb0000008, 0x40000000, 0x90000000, 0xf0000010, 0x90000018,
|
||||
0x60000000, 0x90000010, 0x90000010, 0x90000000, 0x80000000, 0x00000010,
|
||||
0xa0000000, 0x20000000, 0xa0000000, 0x20000010, 0x00000000, 0x20000010,
|
||||
0x20000000, 0x00000010, 0x20000000, 0x00000010, 0xa0000000, 0x00000000,
|
||||
0x20000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000001, 0x00000020, 0x00000001, 0x40000002, 0x40000040, 0x40000002,
|
||||
0x80000004, 0x80000080, 0x80000006, 0x00000049, 0x00000103, 0x80000009,
|
||||
0x80000012, 0x80000202},
|
||||
},
|
||||
{
|
||||
DvType: 1, DvK: 51, DvB: 2, TestT: 65, MaskI: 0, MaskB: 14,
|
||||
Dm: [CheckSize]uint32{
|
||||
0xa0000003, 0x20000030, 0x60000000, 0xe000002a, 0x20000043, 0xb0000040,
|
||||
0xd0000053, 0xd0000022, 0x20000000, 0x60000032, 0x60000043, 0x20000040,
|
||||
0xe0000042, 0x60000002, 0x80000001, 0x00000020, 0x00000003, 0x40000052,
|
||||
0x40000040, 0xe0000052, 0xa0000000, 0x80000040, 0x20000001, 0x20000060,
|
||||
0x80000001, 0x40000042, 0xc0000043, 0x40000022, 0x00000003, 0x40000042,
|
||||
0xc0000043, 0xc0000022, 0x00000001, 0x40000002, 0xc0000043, 0x40000062,
|
||||
0x80000001, 0x40000042, 0x40000042, 0x40000002, 0x00000002, 0x00000040,
|
||||
0x80000002, 0x80000000, 0x80000002, 0x80000040, 0x00000000, 0x80000040,
|
||||
0x80000000, 0x00000040, 0x80000000, 0x00000040, 0x80000002, 0x00000000,
|
||||
0x80000000, 0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000004, 0x00000080, 0x00000004, 0x00000009, 0x00000101, 0x00000009,
|
||||
0x00000012, 0x00000202, 0x0000001a, 0x00000124, 0x0000040c, 0x00000026,
|
||||
0x0000004a, 0x0000080a},
|
||||
},
|
||||
{
|
||||
DvType: 1, DvK: 52, DvB: 0, TestT: 65, MaskI: 0, MaskB: 15,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x04000010, 0xe8000000, 0x0800000c, 0x18000000, 0xb800000a, 0xc8000010,
|
||||
0x2c000010, 0xf4000014, 0xb4000008, 0x08000000, 0x9800000c, 0xd8000010,
|
||||
0x08000010, 0xb8000010, 0x98000000, 0x60000000, 0x00000008, 0xc0000000,
|
||||
0x90000014, 0x10000010, 0xb8000014, 0x28000000, 0x20000010, 0x48000000,
|
||||
0x08000018, 0x60000000, 0x90000010, 0xf0000010, 0x90000008, 0xc0000000,
|
||||
0x90000010, 0xf0000010, 0xb0000008, 0x40000000, 0x90000000, 0xf0000010,
|
||||
0x90000018, 0x60000000, 0x90000010, 0x90000010, 0x90000000, 0x80000000,
|
||||
0x00000010, 0xa0000000, 0x20000000, 0xa0000000, 0x20000010, 0x00000000,
|
||||
0x20000010, 0x20000000, 0x00000010, 0x20000000, 0x00000010, 0xa0000000,
|
||||
0x00000000, 0x20000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000001, 0x00000020, 0x00000001, 0x40000002, 0x40000040,
|
||||
0x40000002, 0x80000004, 0x80000080, 0x80000006, 0x00000049, 0x00000103,
|
||||
0x80000009, 0x80000012},
|
||||
},
|
||||
{
|
||||
DvType: 2, DvK: 45, DvB: 0, TestT: 58, MaskI: 0, MaskB: 16,
|
||||
Dm: [CheckSize]uint32{
|
||||
0xec000014, 0x0c000002, 0xc0000010, 0xb400001c, 0x2c000004, 0xbc000018,
|
||||
0xb0000010, 0x0000000c, 0xb8000010, 0x08000018, 0x78000010, 0x08000014,
|
||||
0x70000010, 0xb800001c, 0xe8000000, 0xb0000004, 0x58000010, 0xb000000c,
|
||||
0x48000000, 0xb0000000, 0xb8000010, 0x98000010, 0xa0000000, 0x00000000,
|
||||
0x00000000, 0x20000000, 0x80000000, 0x00000010, 0x00000000, 0x20000010,
|
||||
0x20000000, 0x00000010, 0x60000000, 0x00000018, 0xe0000000, 0x90000000,
|
||||
0x30000010, 0xb0000000, 0x20000000, 0x20000000, 0xa0000000, 0x00000010,
|
||||
0x80000000, 0x20000000, 0x20000000, 0x20000000, 0x80000000, 0x00000010,
|
||||
0x00000000, 0x20000010, 0xa0000000, 0x00000000, 0x20000000, 0x20000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000001, 0x00000020, 0x00000001, 0x40000002, 0x40000041, 0x40000022,
|
||||
0x80000005, 0xc0000082, 0xc0000046, 0x4000004b, 0x80000107, 0x00000089,
|
||||
0x00000014, 0x8000024b, 0x0000011b, 0x8000016d, 0x8000041a, 0x000002e4,
|
||||
0x80000054, 0x00000967},
|
||||
},
|
||||
{
|
||||
DvType: 2, DvK: 46, DvB: 0, TestT: 58, MaskI: 0, MaskB: 17,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x2400001c, 0xec000014, 0x0c000002, 0xc0000010, 0xb400001c, 0x2c000004,
|
||||
0xbc000018, 0xb0000010, 0x0000000c, 0xb8000010, 0x08000018, 0x78000010,
|
||||
0x08000014, 0x70000010, 0xb800001c, 0xe8000000, 0xb0000004, 0x58000010,
|
||||
0xb000000c, 0x48000000, 0xb0000000, 0xb8000010, 0x98000010, 0xa0000000,
|
||||
0x00000000, 0x00000000, 0x20000000, 0x80000000, 0x00000010, 0x00000000,
|
||||
0x20000010, 0x20000000, 0x00000010, 0x60000000, 0x00000018, 0xe0000000,
|
||||
0x90000000, 0x30000010, 0xb0000000, 0x20000000, 0x20000000, 0xa0000000,
|
||||
0x00000010, 0x80000000, 0x20000000, 0x20000000, 0x20000000, 0x80000000,
|
||||
0x00000010, 0x00000000, 0x20000010, 0xa0000000, 0x00000000, 0x20000000,
|
||||
0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000001, 0x00000020, 0x00000001, 0x40000002, 0x40000041,
|
||||
0x40000022, 0x80000005, 0xc0000082, 0xc0000046, 0x4000004b, 0x80000107,
|
||||
0x00000089, 0x00000014, 0x8000024b, 0x0000011b, 0x8000016d, 0x8000041a,
|
||||
0x000002e4, 0x80000054},
|
||||
},
|
||||
{
|
||||
DvType: 2, DvK: 46, DvB: 2, TestT: 58, MaskI: 0, MaskB: 18,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x90000070, 0xb0000053, 0x30000008, 0x00000043, 0xd0000072, 0xb0000010,
|
||||
0xf0000062, 0xc0000042, 0x00000030, 0xe0000042, 0x20000060, 0xe0000041,
|
||||
0x20000050, 0xc0000041, 0xe0000072, 0xa0000003, 0xc0000012, 0x60000041,
|
||||
0xc0000032, 0x20000001, 0xc0000002, 0xe0000042, 0x60000042, 0x80000002,
|
||||
0x00000000, 0x00000000, 0x80000000, 0x00000002, 0x00000040, 0x00000000,
|
||||
0x80000040, 0x80000000, 0x00000040, 0x80000001, 0x00000060, 0x80000003,
|
||||
0x40000002, 0xc0000040, 0xc0000002, 0x80000000, 0x80000000, 0x80000002,
|
||||
0x00000040, 0x00000002, 0x80000000, 0x80000000, 0x80000000, 0x00000002,
|
||||
0x00000040, 0x00000000, 0x80000040, 0x80000002, 0x00000000, 0x80000000,
|
||||
0x80000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000004, 0x00000080, 0x00000004, 0x00000009, 0x00000105,
|
||||
0x00000089, 0x00000016, 0x0000020b, 0x0000011b, 0x0000012d, 0x0000041e,
|
||||
0x00000224, 0x00000050, 0x0000092e, 0x0000046c, 0x000005b6, 0x0000106a,
|
||||
0x00000b90, 0x00000152},
|
||||
},
|
||||
{
|
||||
DvType: 2, DvK: 47, DvB: 0, TestT: 58, MaskI: 0, MaskB: 19,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x20000010, 0x2400001c, 0xec000014, 0x0c000002, 0xc0000010, 0xb400001c,
|
||||
0x2c000004, 0xbc000018, 0xb0000010, 0x0000000c, 0xb8000010, 0x08000018,
|
||||
0x78000010, 0x08000014, 0x70000010, 0xb800001c, 0xe8000000, 0xb0000004,
|
||||
0x58000010, 0xb000000c, 0x48000000, 0xb0000000, 0xb8000010, 0x98000010,
|
||||
0xa0000000, 0x00000000, 0x00000000, 0x20000000, 0x80000000, 0x00000010,
|
||||
0x00000000, 0x20000010, 0x20000000, 0x00000010, 0x60000000, 0x00000018,
|
||||
0xe0000000, 0x90000000, 0x30000010, 0xb0000000, 0x20000000, 0x20000000,
|
||||
0xa0000000, 0x00000010, 0x80000000, 0x20000000, 0x20000000, 0x20000000,
|
||||
0x80000000, 0x00000010, 0x00000000, 0x20000010, 0xa0000000, 0x00000000,
|
||||
0x20000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000001, 0x00000020, 0x00000001, 0x40000002,
|
||||
0x40000041, 0x40000022, 0x80000005, 0xc0000082, 0xc0000046, 0x4000004b,
|
||||
0x80000107, 0x00000089, 0x00000014, 0x8000024b, 0x0000011b, 0x8000016d,
|
||||
0x8000041a, 0x000002e4},
|
||||
},
|
||||
{
|
||||
DvType: 2, DvK: 48, DvB: 0, TestT: 58, MaskI: 0, MaskB: 20,
|
||||
Dm: [CheckSize]uint32{
|
||||
0xbc00001a, 0x20000010, 0x2400001c, 0xec000014, 0x0c000002, 0xc0000010,
|
||||
0xb400001c, 0x2c000004, 0xbc000018, 0xb0000010, 0x0000000c, 0xb8000010,
|
||||
0x08000018, 0x78000010, 0x08000014, 0x70000010, 0xb800001c, 0xe8000000,
|
||||
0xb0000004, 0x58000010, 0xb000000c, 0x48000000, 0xb0000000, 0xb8000010,
|
||||
0x98000010, 0xa0000000, 0x00000000, 0x00000000, 0x20000000, 0x80000000,
|
||||
0x00000010, 0x00000000, 0x20000010, 0x20000000, 0x00000010, 0x60000000,
|
||||
0x00000018, 0xe0000000, 0x90000000, 0x30000010, 0xb0000000, 0x20000000,
|
||||
0x20000000, 0xa0000000, 0x00000010, 0x80000000, 0x20000000, 0x20000000,
|
||||
0x20000000, 0x80000000, 0x00000010, 0x00000000, 0x20000010, 0xa0000000,
|
||||
0x00000000, 0x20000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000020, 0x00000001,
|
||||
0x40000002, 0x40000041, 0x40000022, 0x80000005, 0xc0000082, 0xc0000046,
|
||||
0x4000004b, 0x80000107, 0x00000089, 0x00000014, 0x8000024b, 0x0000011b,
|
||||
0x8000016d, 0x8000041a},
|
||||
},
|
||||
{
|
||||
DvType: 2, DvK: 49, DvB: 0, TestT: 58, MaskI: 0, MaskB: 21,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x3c000004, 0xbc00001a, 0x20000010, 0x2400001c, 0xec000014, 0x0c000002,
|
||||
0xc0000010, 0xb400001c, 0x2c000004, 0xbc000018, 0xb0000010, 0x0000000c,
|
||||
0xb8000010, 0x08000018, 0x78000010, 0x08000014, 0x70000010, 0xb800001c,
|
||||
0xe8000000, 0xb0000004, 0x58000010, 0xb000000c, 0x48000000, 0xb0000000,
|
||||
0xb8000010, 0x98000010, 0xa0000000, 0x00000000, 0x00000000, 0x20000000,
|
||||
0x80000000, 0x00000010, 0x00000000, 0x20000010, 0x20000000, 0x00000010,
|
||||
0x60000000, 0x00000018, 0xe0000000, 0x90000000, 0x30000010, 0xb0000000,
|
||||
0x20000000, 0x20000000, 0xa0000000, 0x00000010, 0x80000000, 0x20000000,
|
||||
0x20000000, 0x20000000, 0x80000000, 0x00000010, 0x00000000, 0x20000010,
|
||||
0xa0000000, 0x00000000, 0x20000000, 0x20000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000020,
|
||||
0x00000001, 0x40000002, 0x40000041, 0x40000022, 0x80000005, 0xc0000082,
|
||||
0xc0000046, 0x4000004b, 0x80000107, 0x00000089, 0x00000014, 0x8000024b,
|
||||
0x0000011b, 0x8000016d},
|
||||
},
|
||||
{
|
||||
DvType: 2, DvK: 49, DvB: 2, TestT: 58, MaskI: 0, MaskB: 22,
|
||||
Dm: [CheckSize]uint32{
|
||||
0xf0000010, 0xf000006a, 0x80000040, 0x90000070, 0xb0000053, 0x30000008,
|
||||
0x00000043, 0xd0000072, 0xb0000010, 0xf0000062, 0xc0000042, 0x00000030,
|
||||
0xe0000042, 0x20000060, 0xe0000041, 0x20000050, 0xc0000041, 0xe0000072,
|
||||
0xa0000003, 0xc0000012, 0x60000041, 0xc0000032, 0x20000001, 0xc0000002,
|
||||
0xe0000042, 0x60000042, 0x80000002, 0x00000000, 0x00000000, 0x80000000,
|
||||
0x00000002, 0x00000040, 0x00000000, 0x80000040, 0x80000000, 0x00000040,
|
||||
0x80000001, 0x00000060, 0x80000003, 0x40000002, 0xc0000040, 0xc0000002,
|
||||
0x80000000, 0x80000000, 0x80000002, 0x00000040, 0x00000002, 0x80000000,
|
||||
0x80000000, 0x80000000, 0x00000002, 0x00000040, 0x00000000, 0x80000040,
|
||||
0x80000002, 0x00000000, 0x80000000, 0x80000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000004, 0x00000080,
|
||||
0x00000004, 0x00000009, 0x00000105, 0x00000089, 0x00000016, 0x0000020b,
|
||||
0x0000011b, 0x0000012d, 0x0000041e, 0x00000224, 0x00000050, 0x0000092e,
|
||||
0x0000046c, 0x000005b6},
|
||||
},
|
||||
{
|
||||
DvType: 2, DvK: 50, DvB: 0, TestT: 65, MaskI: 0, MaskB: 23,
|
||||
Dm: [CheckSize]uint32{
|
||||
0xb400001c, 0x3c000004, 0xbc00001a, 0x20000010, 0x2400001c, 0xec000014,
|
||||
0x0c000002, 0xc0000010, 0xb400001c, 0x2c000004, 0xbc000018, 0xb0000010,
|
||||
0x0000000c, 0xb8000010, 0x08000018, 0x78000010, 0x08000014, 0x70000010,
|
||||
0xb800001c, 0xe8000000, 0xb0000004, 0x58000010, 0xb000000c, 0x48000000,
|
||||
0xb0000000, 0xb8000010, 0x98000010, 0xa0000000, 0x00000000, 0x00000000,
|
||||
0x20000000, 0x80000000, 0x00000010, 0x00000000, 0x20000010, 0x20000000,
|
||||
0x00000010, 0x60000000, 0x00000018, 0xe0000000, 0x90000000, 0x30000010,
|
||||
0xb0000000, 0x20000000, 0x20000000, 0xa0000000, 0x00000010, 0x80000000,
|
||||
0x20000000, 0x20000000, 0x20000000, 0x80000000, 0x00000010, 0x00000000,
|
||||
0x20000010, 0xa0000000, 0x00000000, 0x20000000, 0x20000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
|
||||
0x00000020, 0x00000001, 0x40000002, 0x40000041, 0x40000022, 0x80000005,
|
||||
0xc0000082, 0xc0000046, 0x4000004b, 0x80000107, 0x00000089, 0x00000014,
|
||||
0x8000024b, 0x0000011b},
|
||||
},
|
||||
{
|
||||
DvType: 2, DvK: 50, DvB: 2, TestT: 65, MaskI: 0, MaskB: 24,
|
||||
Dm: [CheckSize]uint32{
|
||||
0xd0000072, 0xf0000010, 0xf000006a, 0x80000040, 0x90000070, 0xb0000053,
|
||||
0x30000008, 0x00000043, 0xd0000072, 0xb0000010, 0xf0000062, 0xc0000042,
|
||||
0x00000030, 0xe0000042, 0x20000060, 0xe0000041, 0x20000050, 0xc0000041,
|
||||
0xe0000072, 0xa0000003, 0xc0000012, 0x60000041, 0xc0000032, 0x20000001,
|
||||
0xc0000002, 0xe0000042, 0x60000042, 0x80000002, 0x00000000, 0x00000000,
|
||||
0x80000000, 0x00000002, 0x00000040, 0x00000000, 0x80000040, 0x80000000,
|
||||
0x00000040, 0x80000001, 0x00000060, 0x80000003, 0x40000002, 0xc0000040,
|
||||
0xc0000002, 0x80000000, 0x80000000, 0x80000002, 0x00000040, 0x00000002,
|
||||
0x80000000, 0x80000000, 0x80000000, 0x00000002, 0x00000040, 0x00000000,
|
||||
0x80000040, 0x80000002, 0x00000000, 0x80000000, 0x80000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000004,
|
||||
0x00000080, 0x00000004, 0x00000009, 0x00000105, 0x00000089, 0x00000016,
|
||||
0x0000020b, 0x0000011b, 0x0000012d, 0x0000041e, 0x00000224, 0x00000050,
|
||||
0x0000092e, 0x0000046c},
|
||||
},
|
||||
{
|
||||
DvType: 2, DvK: 51, DvB: 0, TestT: 65, MaskI: 0, MaskB: 25,
|
||||
Dm: [CheckSize]uint32{
|
||||
0xc0000010, 0xb400001c, 0x3c000004, 0xbc00001a, 0x20000010, 0x2400001c,
|
||||
0xec000014, 0x0c000002, 0xc0000010, 0xb400001c, 0x2c000004, 0xbc000018,
|
||||
0xb0000010, 0x0000000c, 0xb8000010, 0x08000018, 0x78000010, 0x08000014,
|
||||
0x70000010, 0xb800001c, 0xe8000000, 0xb0000004, 0x58000010, 0xb000000c,
|
||||
0x48000000, 0xb0000000, 0xb8000010, 0x98000010, 0xa0000000, 0x00000000,
|
||||
0x00000000, 0x20000000, 0x80000000, 0x00000010, 0x00000000, 0x20000010,
|
||||
0x20000000, 0x00000010, 0x60000000, 0x00000018, 0xe0000000, 0x90000000,
|
||||
0x30000010, 0xb0000000, 0x20000000, 0x20000000, 0xa0000000, 0x00000010,
|
||||
0x80000000, 0x20000000, 0x20000000, 0x20000000, 0x80000000, 0x00000010,
|
||||
0x00000000, 0x20000010, 0xa0000000, 0x00000000, 0x20000000, 0x20000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000001, 0x00000020, 0x00000001, 0x40000002, 0x40000041, 0x40000022,
|
||||
0x80000005, 0xc0000082, 0xc0000046, 0x4000004b, 0x80000107, 0x00000089,
|
||||
0x00000014, 0x8000024b},
|
||||
},
|
||||
{
|
||||
DvType: 2, DvK: 51, DvB: 2, TestT: 65, MaskI: 0, MaskB: 26,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x00000043, 0xd0000072, 0xf0000010, 0xf000006a, 0x80000040, 0x90000070,
|
||||
0xb0000053, 0x30000008, 0x00000043, 0xd0000072, 0xb0000010, 0xf0000062,
|
||||
0xc0000042, 0x00000030, 0xe0000042, 0x20000060, 0xe0000041, 0x20000050,
|
||||
0xc0000041, 0xe0000072, 0xa0000003, 0xc0000012, 0x60000041, 0xc0000032,
|
||||
0x20000001, 0xc0000002, 0xe0000042, 0x60000042, 0x80000002, 0x00000000,
|
||||
0x00000000, 0x80000000, 0x00000002, 0x00000040, 0x00000000, 0x80000040,
|
||||
0x80000000, 0x00000040, 0x80000001, 0x00000060, 0x80000003, 0x40000002,
|
||||
0xc0000040, 0xc0000002, 0x80000000, 0x80000000, 0x80000002, 0x00000040,
|
||||
0x00000002, 0x80000000, 0x80000000, 0x80000000, 0x00000002, 0x00000040,
|
||||
0x00000000, 0x80000040, 0x80000002, 0x00000000, 0x80000000, 0x80000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000004, 0x00000080, 0x00000004, 0x00000009, 0x00000105, 0x00000089,
|
||||
0x00000016, 0x0000020b, 0x0000011b, 0x0000012d, 0x0000041e, 0x00000224,
|
||||
0x00000050, 0x0000092e},
|
||||
},
|
||||
{
|
||||
DvType: 2, DvK: 52, DvB: 0, TestT: 65, MaskI: 0, MaskB: 27,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x0c000002, 0xc0000010, 0xb400001c, 0x3c000004, 0xbc00001a, 0x20000010,
|
||||
0x2400001c, 0xec000014, 0x0c000002, 0xc0000010, 0xb400001c, 0x2c000004,
|
||||
0xbc000018, 0xb0000010, 0x0000000c, 0xb8000010, 0x08000018, 0x78000010,
|
||||
0x08000014, 0x70000010, 0xb800001c, 0xe8000000, 0xb0000004, 0x58000010,
|
||||
0xb000000c, 0x48000000, 0xb0000000, 0xb8000010, 0x98000010, 0xa0000000,
|
||||
0x00000000, 0x00000000, 0x20000000, 0x80000000, 0x00000010, 0x00000000,
|
||||
0x20000010, 0x20000000, 0x00000010, 0x60000000, 0x00000018, 0xe0000000,
|
||||
0x90000000, 0x30000010, 0xb0000000, 0x20000000, 0x20000000, 0xa0000000,
|
||||
0x00000010, 0x80000000, 0x20000000, 0x20000000, 0x20000000, 0x80000000,
|
||||
0x00000010, 0x00000000, 0x20000010, 0xa0000000, 0x00000000, 0x20000000,
|
||||
0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000001, 0x00000020, 0x00000001, 0x40000002, 0x40000041,
|
||||
0x40000022, 0x80000005, 0xc0000082, 0xc0000046, 0x4000004b, 0x80000107,
|
||||
0x00000089, 0x00000014},
|
||||
},
|
||||
{
|
||||
DvType: 2, DvK: 53, DvB: 0, TestT: 65, MaskI: 0, MaskB: 28,
|
||||
Dm: [CheckSize]uint32{
|
||||
0xcc000014, 0x0c000002, 0xc0000010, 0xb400001c, 0x3c000004, 0xbc00001a,
|
||||
0x20000010, 0x2400001c, 0xec000014, 0x0c000002, 0xc0000010, 0xb400001c,
|
||||
0x2c000004, 0xbc000018, 0xb0000010, 0x0000000c, 0xb8000010, 0x08000018,
|
||||
0x78000010, 0x08000014, 0x70000010, 0xb800001c, 0xe8000000, 0xb0000004,
|
||||
0x58000010, 0xb000000c, 0x48000000, 0xb0000000, 0xb8000010, 0x98000010,
|
||||
0xa0000000, 0x00000000, 0x00000000, 0x20000000, 0x80000000, 0x00000010,
|
||||
0x00000000, 0x20000010, 0x20000000, 0x00000010, 0x60000000, 0x00000018,
|
||||
0xe0000000, 0x90000000, 0x30000010, 0xb0000000, 0x20000000, 0x20000000,
|
||||
0xa0000000, 0x00000010, 0x80000000, 0x20000000, 0x20000000, 0x20000000,
|
||||
0x80000000, 0x00000010, 0x00000000, 0x20000010, 0xa0000000, 0x00000000,
|
||||
0x20000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000001, 0x00000020, 0x00000001, 0x40000002,
|
||||
0x40000041, 0x40000022, 0x80000005, 0xc0000082, 0xc0000046, 0x4000004b,
|
||||
0x80000107, 0x00000089},
|
||||
},
|
||||
{
|
||||
DvType: 2, DvK: 54, DvB: 0, TestT: 65, MaskI: 0, MaskB: 29,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x0400001c, 0xcc000014, 0x0c000002, 0xc0000010, 0xb400001c, 0x3c000004,
|
||||
0xbc00001a, 0x20000010, 0x2400001c, 0xec000014, 0x0c000002, 0xc0000010,
|
||||
0xb400001c, 0x2c000004, 0xbc000018, 0xb0000010, 0x0000000c, 0xb8000010,
|
||||
0x08000018, 0x78000010, 0x08000014, 0x70000010, 0xb800001c, 0xe8000000,
|
||||
0xb0000004, 0x58000010, 0xb000000c, 0x48000000, 0xb0000000, 0xb8000010,
|
||||
0x98000010, 0xa0000000, 0x00000000, 0x00000000, 0x20000000, 0x80000000,
|
||||
0x00000010, 0x00000000, 0x20000010, 0x20000000, 0x00000010, 0x60000000,
|
||||
0x00000018, 0xe0000000, 0x90000000, 0x30000010, 0xb0000000, 0x20000000,
|
||||
0x20000000, 0xa0000000, 0x00000010, 0x80000000, 0x20000000, 0x20000000,
|
||||
0x20000000, 0x80000000, 0x00000010, 0x00000000, 0x20000010, 0xa0000000,
|
||||
0x00000000, 0x20000000, 0x20000000, 0x00000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000020, 0x00000001,
|
||||
0x40000002, 0x40000041, 0x40000022, 0x80000005, 0xc0000082, 0xc0000046,
|
||||
0x4000004b, 0x80000107},
|
||||
},
|
||||
{
|
||||
DvType: 2, DvK: 55, DvB: 0, TestT: 65, MaskI: 0, MaskB: 30,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x00000010, 0x0400001c, 0xcc000014, 0x0c000002, 0xc0000010, 0xb400001c,
|
||||
0x3c000004, 0xbc00001a, 0x20000010, 0x2400001c, 0xec000014, 0x0c000002,
|
||||
0xc0000010, 0xb400001c, 0x2c000004, 0xbc000018, 0xb0000010, 0x0000000c,
|
||||
0xb8000010, 0x08000018, 0x78000010, 0x08000014, 0x70000010, 0xb800001c,
|
||||
0xe8000000, 0xb0000004, 0x58000010, 0xb000000c, 0x48000000, 0xb0000000,
|
||||
0xb8000010, 0x98000010, 0xa0000000, 0x00000000, 0x00000000, 0x20000000,
|
||||
0x80000000, 0x00000010, 0x00000000, 0x20000010, 0x20000000, 0x00000010,
|
||||
0x60000000, 0x00000018, 0xe0000000, 0x90000000, 0x30000010, 0xb0000000,
|
||||
0x20000000, 0x20000000, 0xa0000000, 0x00000010, 0x80000000, 0x20000000,
|
||||
0x20000000, 0x20000000, 0x80000000, 0x00000010, 0x00000000, 0x20000010,
|
||||
0xa0000000, 0x00000000, 0x20000000, 0x20000000, 0x00000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000020,
|
||||
0x00000001, 0x40000002, 0x40000041, 0x40000022, 0x80000005, 0xc0000082,
|
||||
0xc0000046, 0x4000004b},
|
||||
},
|
||||
{
|
||||
DvType: 2, DvK: 56, DvB: 0, TestT: 65, MaskI: 0, MaskB: 31,
|
||||
Dm: [CheckSize]uint32{
|
||||
0x2600001a, 0x00000010, 0x0400001c, 0xcc000014, 0x0c000002, 0xc0000010,
|
||||
0xb400001c, 0x3c000004, 0xbc00001a, 0x20000010, 0x2400001c, 0xec000014,
|
||||
0x0c000002, 0xc0000010, 0xb400001c, 0x2c000004, 0xbc000018, 0xb0000010,
|
||||
0x0000000c, 0xb8000010, 0x08000018, 0x78000010, 0x08000014, 0x70000010,
|
||||
0xb800001c, 0xe8000000, 0xb0000004, 0x58000010, 0xb000000c, 0x48000000,
|
||||
0xb0000000, 0xb8000010, 0x98000010, 0xa0000000, 0x00000000, 0x00000000,
|
||||
0x20000000, 0x80000000, 0x00000010, 0x00000000, 0x20000010, 0x20000000,
|
||||
0x00000010, 0x60000000, 0x00000018, 0xe0000000, 0x90000000, 0x30000010,
|
||||
0xb0000000, 0x20000000, 0x20000000, 0xa0000000, 0x00000010, 0x80000000,
|
||||
0x20000000, 0x20000000, 0x20000000, 0x80000000, 0x00000010, 0x00000000,
|
||||
0x20000010, 0xa0000000, 0x00000000, 0x20000000, 0x20000000, 0x00000000,
|
||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
|
||||
0x00000020, 0x00000001, 0x40000002, 0x40000041, 0x40000022, 0x80000005,
|
||||
0xc0000082, 0xc0000046},
|
||||
},
|
||||
{
|
||||
DvType: 0, DvK: 0, DvB: 0, TestT: 0, MaskI: 0, MaskB: 0,
|
||||
Dm: [CheckSize]uint32{
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0},
|
||||
},
|
||||
}
|
3
vendor/github.com/pjbgf/sha1cd/ubc/doc.go
generated
vendored
Normal file
3
vendor/github.com/pjbgf/sha1cd/ubc/doc.go
generated
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
// ubc package provides ways for SHA1 blocks to be checked for
|
||||
// Unavoidable Bit Conditions that arise from crypto analysis attacks.
|
||||
package ubc
|
Reference in New Issue
Block a user