summaryrefslogtreecommitdiff
path: root/src/lib/libc/string/bcmp.3
diff options
context:
space:
mode:
authormatthew <>2014-06-13 02:12:17 +0000
committermatthew <>2014-06-13 02:12:17 +0000
commitcc594d5ff9b7bb08404d34d62287ee1dfd6b8332 (patch)
tree228054f338d1a5a8d53b4b58798bd55801ab2ce2 /src/lib/libc/string/bcmp.3
parent5a1fd238ffb5612e4dd1965f694b7f04ab0d5ecb (diff)
downloadopenbsd-cc594d5ff9b7bb08404d34d62287ee1dfd6b8332.tar.gz
openbsd-cc594d5ff9b7bb08404d34d62287ee1dfd6b8332.tar.bz2
openbsd-cc594d5ff9b7bb08404d34d62287ee1dfd6b8332.zip
Add timingsafe_memcmp().
ok deraadt, jmc, tedu
Diffstat (limited to 'src/lib/libc/string/bcmp.3')
-rw-r--r--src/lib/libc/string/bcmp.331
1 files changed, 5 insertions, 26 deletions
diff --git a/src/lib/libc/string/bcmp.3 b/src/lib/libc/string/bcmp.3
index 52584b4b83..720a8bf304 100644
--- a/src/lib/libc/string/bcmp.3
+++ b/src/lib/libc/string/bcmp.3
@@ -27,21 +27,18 @@
27.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28.\" SUCH DAMAGE. 28.\" SUCH DAMAGE.
29.\" 29.\"
30.\" $OpenBSD: bcmp.3,v 1.10 2013/06/05 03:39:23 tedu Exp $ 30.\" $OpenBSD: bcmp.3,v 1.11 2014/06/13 02:12:17 matthew Exp $
31.\" 31.\"
32.Dd $Mdocdate: June 5 2013 $ 32.Dd $Mdocdate: June 13 2014 $
33.Dt BCMP 3 33.Dt BCMP 3
34.Os 34.Os
35.Sh NAME 35.Sh NAME
36.Nm bcmp , 36.Nm bcmp
37.Nm timingsafe_bcmp
38.Nd compare byte string 37.Nd compare byte string
39.Sh SYNOPSIS 38.Sh SYNOPSIS
40.In string.h 39.In string.h
41.Ft int 40.Ft int
42.Fn bcmp "const void *b1" "const void *b2" "size_t len" 41.Fn bcmp "const void *b1" "const void *b2" "size_t len"
43.Ft int
44.Fn timingsafe_bcmp "const void *b1" "const void *b2" "size_t len"
45.Sh DESCRIPTION 42.Sh DESCRIPTION
46The 43The
47.Fn bcmp 44.Fn bcmp
@@ -56,33 +53,15 @@ bytes long.
56Zero-length strings are always identical. 53Zero-length strings are always identical.
57.Pp 54.Pp
58The strings may overlap. 55The strings may overlap.
59.Pp
60The
61.Fn timingsafe_bcmp
62function has the same semantics as
63.Fn bcmp ,
64but its running time is independent of the contents of
65.Fa b1
66and
67.Fa b2 ,
68making it safe to use for comparing secret values such as cryptographic MACs.
69In contrast,
70.Fn bcmp
71returns after finding the first differing byte,
72making it vulnerable to timing attacks.
73.Sh SEE ALSO 56.Sh SEE ALSO
74.Xr memcmp 3 , 57.Xr memcmp 3 ,
75.Xr strcasecmp 3 , 58.Xr strcasecmp 3 ,
76.Xr strcmp 3 , 59.Xr strcmp 3 ,
77.Xr strcoll 3 , 60.Xr strcoll 3 ,
78.Xr strxfrm 3 61.Xr strxfrm 3 ,
62.Xr timingsafe_bcmp 3
79.Sh HISTORY 63.Sh HISTORY
80The 64The
81.Fn bcmp 65.Fn bcmp
82function first appeared in 66function first appeared in
83.Bx 4.2 . 67.Bx 4.2 .
84.Pp
85The
86.Fn timingsafe_bcmp
87function first appeared in
88.Ox 4.9 .