diff options
| author | matthew <> | 2014-06-13 02:12:17 +0000 | 
|---|---|---|
| committer | matthew <> | 2014-06-13 02:12:17 +0000 | 
| commit | 62fc04d99bb7daa7bc91641190502c1d2b3251cc (patch) | |
| tree | 228054f338d1a5a8d53b4b58798bd55801ab2ce2 /src/lib/libc/string/bcmp.3 | |
| parent | e59800852690dfb92773c0668b9727cc3ef04c30 (diff) | |
| download | openbsd-62fc04d99bb7daa7bc91641190502c1d2b3251cc.tar.gz openbsd-62fc04d99bb7daa7bc91641190502c1d2b3251cc.tar.bz2 openbsd-62fc04d99bb7daa7bc91641190502c1d2b3251cc.zip | |
Add timingsafe_memcmp().
ok deraadt, jmc, tedu
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libc/string/bcmp.3 | 31 | 
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 | 
| 46 | The | 43 | The | 
| 47 | .Fn bcmp | 44 | .Fn bcmp | 
| @@ -56,33 +53,15 @@ bytes long. | |||
| 56 | Zero-length strings are always identical. | 53 | Zero-length strings are always identical. | 
| 57 | .Pp | 54 | .Pp | 
| 58 | The strings may overlap. | 55 | The strings may overlap. | 
| 59 | .Pp | ||
| 60 | The | ||
| 61 | .Fn timingsafe_bcmp | ||
| 62 | function has the same semantics as | ||
| 63 | .Fn bcmp , | ||
| 64 | but its running time is independent of the contents of | ||
| 65 | .Fa b1 | ||
| 66 | and | ||
| 67 | .Fa b2 , | ||
| 68 | making it safe to use for comparing secret values such as cryptographic MACs. | ||
| 69 | In contrast, | ||
| 70 | .Fn bcmp | ||
| 71 | returns after finding the first differing byte, | ||
| 72 | making 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 | 
| 80 | The | 64 | The | 
| 81 | .Fn bcmp | 65 | .Fn bcmp | 
| 82 | function first appeared in | 66 | function first appeared in | 
| 83 | .Bx 4.2 . | 67 | .Bx 4.2 . | 
| 84 | .Pp | ||
| 85 | The | ||
| 86 | .Fn timingsafe_bcmp | ||
| 87 | function first appeared in | ||
| 88 | .Ox 4.9 . | ||
