bytevector=? - compare two bytevectors

LIBRARY

(import (rnrs))                     ;R6RS
(import (rnrs bytevectors))         ;R6RS

SYNOPSIS

(bytevector=? bytevector1 bytevector2)

DESCRIPTION

Returns #t if bytevector1 and bytevector2 are equal. They are equal if they have the same length and equal bytes at all valid indices. It returns #f otherwise.

RETURN VALUES

Returns a single boolean object.

EXAMPLES

(bytevector=? #vu8(1 2 3) #vu8(1 2 3))  =>  #t
(bytevector=? #vu8(1 2 3) #vu8(0 1 2))  =>  #f

APPLICATION USAGE

Programs that work with sensitive data such as passwords and message digests must never use this procedure with attacker-controlled data. It may leak information through the time it takes to execute, leading to the movie trope where a password is cracked one letter at a time.

COMPATIBILITY

This procedure is absent from R7RS. Use equal?(3scm) instead.

ERRORS

This procedure can raise exceptions with the following condition types:
&assertion (R6RS)
The wrong number of arguments was passed or an argument was outside its domain.

SEE ALSO

equal?(3scm)

STANDARDS

R6RS

AUTHORS

This page is part of the scheme-manpages project. It includes materials from the RnRS documents. More information can be found at https://github.com/schemedoc/manpages/.


Markup created by unroff 1.0sc,    March 04, 2023.