oweals/openssl.git
14 years agoPR: 2261
Dr. Stephen Henson [Thu, 27 May 2010 13:07:22 +0000 (13:07 +0000)]
PR: 2261
Submitted By: De Rudder, Stephen L." <s_derudder@tditx.com>

Workaround for newer Windows headers which define EADDRINUSE but not to the
same value as WSAEADDRINUSE.

14 years agoPR: 2258
Dr. Stephen Henson [Thu, 27 May 2010 12:41:05 +0000 (12:41 +0000)]
PR: 2258
Submitted By: Ger Hobbelt <ger@hobbelt.com>

Base64 BIO fixes:

Use OPENSSL_assert() instead of assert().
Use memmove() as buffers overlap.
Fix write retry logic.

14 years agoPR: 2266
Dr. Stephen Henson [Wed, 26 May 2010 23:23:34 +0000 (23:23 +0000)]
PR: 2266
Submitted By: Jonathan Gray <jsg@goblin.cx>

Correct ioctl definitions.

14 years agogcm128.c: P.-M. Hager has tipped about possibility to fold reductions
Andy Polyakov [Wed, 26 May 2010 21:36:36 +0000 (21:36 +0000)]
gcm128.c: P.-M. Hager has tipped about possibility to fold reductions
in gcm_ghash_4bit. Taking the idea a step further I've added extra
256+16 bytes of per-key storage, so that one can speak about 3rd variant
in addition to "256B" and "4KB": "528B" one. Commonly it should be
~50% faster than "256B" implementation or ~25% slower than "4KB" one.

14 years agoAvoid use of ex_data free function in Chil ENGINE so it can be safely
Dr. Stephen Henson [Wed, 26 May 2010 16:17:16 +0000 (16:17 +0000)]
Avoid use of ex_data free function in Chil ENGINE so it can be safely
reloaded.

14 years agoghash-x86.pl: MMX optimization (+20-40%) and commentary update.
Andy Polyakov [Sun, 23 May 2010 12:37:01 +0000 (12:37 +0000)]
ghash-x86.pl: MMX optimization (+20-40%) and commentary update.

14 years agogcm128.c: commentary update.
Andy Polyakov [Sun, 23 May 2010 12:35:41 +0000 (12:35 +0000)]
gcm128.c: commentary update.

14 years agoPR: 2254
Dr. Stephen Henson [Sat, 22 May 2010 00:40:38 +0000 (00:40 +0000)]
PR: 2254
Submitted by: Ger Hobbelt <ger@hobbelt.com>
Approved by: steve@openssl.org

Check for <= 0 i2d return value.

14 years agoPR: 2251
Dr. Stephen Henson [Sat, 22 May 2010 00:30:41 +0000 (00:30 +0000)]
PR: 2251
Submitted by: Ger Hobbelt <ger@hobbelt.com>
Approved by: steve@openssl.org

Memleak, BIO chain leak and realloc checks in v3_pci.c

14 years agoStop compiler complaining in pedantic mode: may be a better way to do this...
Dr. Stephen Henson [Sat, 22 May 2010 00:20:42 +0000 (00:20 +0000)]
Stop compiler complaining in pedantic mode: may be a better way to do this...

14 years agooops, typo
Dr. Stephen Henson [Thu, 20 May 2010 17:36:05 +0000 (17:36 +0000)]
oops, typo

14 years agoUpdate cms-test.pl to handle some Unix like Windows environments where
Dr. Stephen Henson [Thu, 20 May 2010 17:28:37 +0000 (17:28 +0000)]
Update cms-test.pl to handle some Unix like Windows environments where
calling shlib_wrap.sh doesn't work.

14 years agoPR: 2259
Dr. Stephen Henson [Mon, 17 May 2010 11:27:22 +0000 (11:27 +0000)]
PR: 2259
Submitted By: Artem Chuprina <ran@cryptocom.ru>

Check return values of HMAC in tls_P_hash and tls1_generate_key_block.

Although the previous version could in theory crash that would only happen if a
digest call failed. The standard software methods can never fail and only one
ENGINE currently uses digests and it is not compiled in by default.

14 years agooops, revert test patch
Dr. Stephen Henson [Sat, 15 May 2010 00:35:39 +0000 (00:35 +0000)]
oops, revert test patch

14 years agoPR: 2253
Dr. Stephen Henson [Sat, 15 May 2010 00:34:06 +0000 (00:34 +0000)]
PR: 2253
Submitted By: Ger Hobbelt <ger@hobbelt.com>

Check callback return value when outputting errors.

14 years agoPR: 2255
Dr. Stephen Henson [Sat, 15 May 2010 00:19:44 +0000 (00:19 +0000)]
PR: 2255
Submitted By: Ger Hobbelt <ger@hobbelt.com>

Place RSA dependent variable under #ifndef OPENSSL_NO_RSA

14 years agorc4-x86_64.pl: "Westmere" optimization.
Andy Polyakov [Thu, 13 May 2010 21:01:24 +0000 (21:01 +0000)]
rc4-x86_64.pl: "Westmere" optimization.

14 years agoghash-x86[_64].pl: add due credit.
Andy Polyakov [Thu, 13 May 2010 17:21:52 +0000 (17:21 +0000)]
ghash-x86[_64].pl: add due credit.

14 years agoGCM "jumbo" update:
Andy Polyakov [Thu, 13 May 2010 15:32:43 +0000 (15:32 +0000)]
GCM "jumbo" update:
- gcm128.c: support for Intel PCLMULQDQ, readability improvements;
- asm/ghash-x86.pl: splitted vanilla, MMX, PCLMULQDQ subroutines;
- asm/ghash-x86_64.pl: add PCLMULQDQ implementations.

14 years agox86asm.pl: consistency imrovements.
Andy Polyakov [Thu, 13 May 2010 15:28:07 +0000 (15:28 +0000)]
x86asm.pl: consistency imrovements.

14 years agox86_64-xlate.pl: refine some regexp's and add support for OWORD/QWORD PTR.
Andy Polyakov [Thu, 13 May 2010 15:26:46 +0000 (15:26 +0000)]
x86_64-xlate.pl: refine some regexp's and add support for OWORD/QWORD PTR.

14 years agoRevert previous Linux-specific/centric commit#19629. If it really has to
Andy Polyakov [Wed, 5 May 2010 22:05:39 +0000 (22:05 +0000)]
Revert previous Linux-specific/centric commit#19629. If it really has to
be done, it's definitely not the way to do it. So far answer to the
question was to ./config -Wa,--noexecstack (adopted by RedHat).

14 years agoNon-executable stack in asm.
Ben Laurie [Wed, 5 May 2010 15:50:13 +0000 (15:50 +0000)]
Non-executable stack in asm.

14 years ago"Jumbo" update for crypto/modes:
Andy Polyakov [Tue, 4 May 2010 19:23:02 +0000 (19:23 +0000)]
"Jumbo" update for crypto/modes:
- introduce common modes_lcl.h;
- ctr128.c: implement additional CRYPTO_ctr128_encrypt_ctr32 interface;
- gcm128.c: add omitted ARM initialization, remove ctx.ctr;

14 years agoAdd ghash-armv4.pl.
Andy Polyakov [Mon, 3 May 2010 18:23:29 +0000 (18:23 +0000)]
Add ghash-armv4.pl.

14 years agoPR: 2252
Dr. Stephen Henson [Mon, 3 May 2010 15:30:07 +0000 (15:30 +0000)]
PR: 2252
Submitted By: Ger Hobbelt <ger@hobbelt.com>

Update docs to BIO_f_buffer()

14 years agoPR: 2230
Dr. Stephen Henson [Mon, 3 May 2010 13:01:40 +0000 (13:01 +0000)]
PR: 2230
Submitted By: Robin Seggelmann <seggelmann@fh-muenster.de>

Fix bug in bitmask macros and stop warnings.

14 years agoPR: 2244
Dr. Stephen Henson [Mon, 3 May 2010 12:50:36 +0000 (12:50 +0000)]
PR: 2244
Submitted By: "PMHager" <hager@dortmund.net>

Initialise pkey callback to 0.

14 years agoPR: 2250
Dr. Stephen Henson [Mon, 3 May 2010 12:24:01 +0000 (12:24 +0000)]
PR: 2250
Submitted By: Ger Hobbelt <ger@hobbelt.com>

Don't overwrite return value with strlen(f).

14 years agoexperimental function to convert ASN1_TIME to tm, not used or even compiled in yet
Dr. Stephen Henson [Mon, 3 May 2010 12:17:44 +0000 (12:17 +0000)]
experimental function to convert ASN1_TIME to tm, not used or even compiled in yet

14 years agoMissing declarations, no assembler in PEDANTIC.
Ben Laurie [Sat, 1 May 2010 14:41:25 +0000 (14:41 +0000)]
Missing declarations, no assembler in PEDANTIC.

14 years agobss_file.c: refine UTF-8 logic on Windows.
Andy Polyakov [Wed, 28 Apr 2010 20:02:28 +0000 (20:02 +0000)]
bss_file.c: refine UTF-8 logic on Windows.

14 years agoAdd ghash-parisc.pl.
Andy Polyakov [Wed, 28 Apr 2010 18:51:45 +0000 (18:51 +0000)]
Add ghash-parisc.pl.

14 years agoTake gcm128.c and ghash assembler modules into the build loop.
Andy Polyakov [Thu, 22 Apr 2010 21:36:26 +0000 (21:36 +0000)]
Take gcm128.c and ghash assembler modules into the build loop.

14 years agobss_file.c: reserve for option to encode file name with UTF-8.
Andy Polyakov [Wed, 21 Apr 2010 20:38:21 +0000 (20:38 +0000)]
bss_file.c: reserve for option to encode file name with UTF-8.

14 years agomd5-ia64.S: fix assembler warning.
Andy Polyakov [Tue, 20 Apr 2010 20:40:46 +0000 (20:40 +0000)]
md5-ia64.S: fix assembler warning.

14 years agoPR: 2241
Dr. Stephen Henson [Tue, 20 Apr 2010 12:53:18 +0000 (12:53 +0000)]
PR: 2241
Submitted By: Artemy Lebedev <vagran.ast@gmail.com>

Typo.

14 years agonew function to diff tm structures
Dr. Stephen Henson [Thu, 15 Apr 2010 13:25:26 +0000 (13:25 +0000)]
new function to diff tm structures

14 years agooops revert patch not part of Configure diff
Dr. Stephen Henson [Thu, 15 Apr 2010 13:24:20 +0000 (13:24 +0000)]
oops revert patch not part of Configure diff

14 years agooops, commit Configure part of PR#2234
Dr. Stephen Henson [Thu, 15 Apr 2010 13:17:15 +0000 (13:17 +0000)]
oops, commit Configure part of PR#2234

14 years agoPR: 2234
Dr. Stephen Henson [Wed, 14 Apr 2010 23:07:12 +0000 (23:07 +0000)]
PR: 2234
Submitted By: Matthias Andree <matthias.andree@gmx.de>

Use correct path to openssl utility in c_rehash script.

14 years agoPR: 2235
Dr. Stephen Henson [Wed, 14 Apr 2010 23:04:12 +0000 (23:04 +0000)]
PR: 2235
Submitted By: Bruce Stephens <bruce.stephens@isode.com>

Make ts/Makefile consistent with other Makefiles.

14 years agox86_64cpuid.pl: ml64 is allergic to db on label line.
Andy Polyakov [Wed, 14 Apr 2010 19:24:48 +0000 (19:24 +0000)]
x86_64cpuid.pl: ml64 is allergic to db on label line.

14 years agogcm128.c and assembler modules: change argument order for gcm_ghash_4bit.
Andy Polyakov [Wed, 14 Apr 2010 19:04:51 +0000 (19:04 +0000)]
gcm128.c and assembler modules: change argument order for gcm_ghash_4bit.
ghash-x86*.pl: fix performance numbers for Core2, as it turned out
previous ones were "tainted" by variable clock frequency.

14 years agoupdate FAQ
Dr. Stephen Henson [Wed, 14 Apr 2010 13:21:21 +0000 (13:21 +0000)]
update FAQ

14 years ago[co]fb128.c: fix "n=0" bug.
Andy Polyakov [Wed, 14 Apr 2010 07:47:28 +0000 (07:47 +0000)]
[co]fb128.c: fix "n=0" bug.

14 years agofix signed/unsigned comparison warnings
Dr. Stephen Henson [Wed, 14 Apr 2010 00:41:14 +0000 (00:41 +0000)]
fix signed/unsigned comparison warnings

14 years agofix bug in ccgost CFB mode code
Dr. Stephen Henson [Wed, 14 Apr 2010 00:33:06 +0000 (00:33 +0000)]
fix bug in ccgost CFB mode code

14 years agocheck ASN1 type before using it
Dr. Stephen Henson [Wed, 14 Apr 2010 00:30:32 +0000 (00:30 +0000)]
check ASN1 type before using it

14 years agoPR: 2230
Dr. Stephen Henson [Wed, 14 Apr 2010 00:17:55 +0000 (00:17 +0000)]
PR: 2230
Submitted By: Robin Seggelmann <seggelmann@fh-muenster.de>

Fix various DTLS fragment reassembly bugs.

14 years agoPR: 2229
Dr. Stephen Henson [Wed, 14 Apr 2010 00:10:05 +0000 (00:10 +0000)]
PR: 2229
Submitted By: Robin Seggelmann <seggelmann@fh-muenster.de>

Don't drop DTLS connection if mac or decryption failed.

14 years agoPR: 2228
Dr. Stephen Henson [Wed, 14 Apr 2010 00:03:27 +0000 (00:03 +0000)]
PR: 2228
Submitted By: Robin Seggelmann <seggelmann@fh-muenster.de>

Fix DTLS buffer record MAC failure bug.

14 years agoaes-ppc.pl: 10% performance improvement on Power6.
Andy Polyakov [Sat, 10 Apr 2010 14:53:17 +0000 (14:53 +0000)]
aes-ppc.pl: 10% performance improvement on Power6.

14 years agoAESNI engine: update test_aesni.
Andy Polyakov [Sat, 10 Apr 2010 14:07:40 +0000 (14:07 +0000)]
AESNI engine: update test_aesni.

14 years agogcm128.c: commentary and formatting updates.
Andy Polyakov [Sat, 10 Apr 2010 14:02:26 +0000 (14:02 +0000)]
gcm128.c: commentary and formatting updates.

14 years agocts128.c: add support for NIST "Ciphertext Stealing" proposal.
Andy Polyakov [Sat, 10 Apr 2010 14:01:02 +0000 (14:01 +0000)]
cts128.c: add support for NIST "Ciphertext Stealing" proposal.

14 years agoAESNI engine: add counter mode.
Andy Polyakov [Sat, 10 Apr 2010 13:56:59 +0000 (13:56 +0000)]
AESNI engine: add counter mode.

14 years agoperlasm/x86*: add support to SSE>2 and pclmulqdq. x86_64-xlate.pl provides
Andy Polyakov [Sat, 10 Apr 2010 13:55:05 +0000 (13:55 +0000)]
perlasm/x86*: add support to SSE>2 and pclmulqdq. x86_64-xlate.pl provides
correct solution to problem addressed in committ #19244.

14 years agosha1-alpha.pl: addenum till commit #19547.
Andy Polyakov [Sat, 10 Apr 2010 13:51:20 +0000 (13:51 +0000)]
sha1-alpha.pl: addenum till commit #19547.

14 years agoctr129.c: fix typo, simplify ctr128_inc and fix "n=0" bug.
Andy Polyakov [Sat, 10 Apr 2010 13:46:53 +0000 (13:46 +0000)]
ctr129.c: fix typo, simplify ctr128_inc and fix "n=0" bug.

14 years agoAdd ghash-alpha.pl assembler module.
Andy Polyakov [Sat, 10 Apr 2010 13:44:20 +0000 (13:44 +0000)]
Add ghash-alpha.pl assembler module.

14 years agosha1-alpha.pl: engage it in build.
Andy Polyakov [Sat, 10 Apr 2010 13:43:26 +0000 (13:43 +0000)]
sha1-alpha.pl: engage it in build.

14 years agosparccpuid.S: some assembler is allergic to apostrophes in comments.
Andy Polyakov [Sat, 10 Apr 2010 13:36:34 +0000 (13:36 +0000)]
sparccpuid.S: some assembler is allergic to apostrophes in comments.

14 years agoalpha-mont.pl: comply with stack alignment requirements.
Andy Polyakov [Sat, 10 Apr 2010 13:33:04 +0000 (13:33 +0000)]
alpha-mont.pl: comply with stack alignment requirements.

14 years agomake GOST MAC work again
Dr. Stephen Henson [Thu, 8 Apr 2010 10:55:04 +0000 (10:55 +0000)]
make GOST MAC work again

14 years agoAdd SHA2 algorithms to SSL_library_init(). Although these aren't used
Dr. Stephen Henson [Wed, 7 Apr 2010 13:18:07 +0000 (13:18 +0000)]
Add SHA2 algorithms to SSL_library_init(). Although these aren't used
directly by SSL/TLS SHA2 certificates are becoming more common and
applications that only call SSL_library_init() and not
OpenSSL_add_all_alrgorithms() will fail when verifying certificates.

Update docs.

14 years agoRemove obsolete PRNG note. Add comment about use of SHA256 et al.
Dr. Stephen Henson [Tue, 6 Apr 2010 15:03:27 +0000 (15:03 +0000)]
Remove obsolete PRNG note. Add comment about use of SHA256 et al.

14 years agoPR: 2209
Dr. Stephen Henson [Tue, 6 Apr 2010 14:45:18 +0000 (14:45 +0000)]
PR: 2209
Submitted Daniel Mentz <danielml@sent.com>

Documentation typo.

14 years agoPR: 2218
Dr. Stephen Henson [Tue, 6 Apr 2010 12:45:04 +0000 (12:45 +0000)]
PR: 2218
Submitted By: Robin Seggelmann <seggelmann@fh-muenster.de>

Fixes for DTLS replay bug.

14 years agoPR: 2219
Dr. Stephen Henson [Tue, 6 Apr 2010 12:40:19 +0000 (12:40 +0000)]
PR: 2219
Submitted By: Robin Seggelmann <seggelmann@fh-muenster.de>

Fixes for DTLS buffering bug.

14 years agoPR: 2223
Dr. Stephen Henson [Tue, 6 Apr 2010 12:29:31 +0000 (12:29 +0000)]
PR: 2223
Submitted By: Robin Seggelmann <seggelmann@fh-muenster.de>

Fixes for DTLS timeout bug

14 years agoPR: 2220
Dr. Stephen Henson [Tue, 6 Apr 2010 11:18:59 +0000 (11:18 +0000)]
PR: 2220

Fixes to make OpenSSL compile with no-rc4

14 years agofix FAQ (again)
Dr. Stephen Henson [Wed, 31 Mar 2010 11:50:30 +0000 (11:50 +0000)]
fix FAQ (again)

14 years agoupdate FAQ
Dr. Stephen Henson [Tue, 30 Mar 2010 16:43:51 +0000 (16:43 +0000)]
update FAQ

14 years agofix FAQ
Dr. Stephen Henson [Tue, 30 Mar 2010 16:36:59 +0000 (16:36 +0000)]
fix FAQ

14 years agoupdate FAQ
Dr. Stephen Henson [Tue, 30 Mar 2010 16:35:41 +0000 (16:35 +0000)]
update FAQ

14 years agoupdate FAQ
Dr. Stephen Henson [Tue, 30 Mar 2010 16:24:53 +0000 (16:24 +0000)]
update FAQ

14 years agoupdate HEAD FAQ
Dr. Stephen Henson [Tue, 30 Mar 2010 00:49:36 +0000 (00:49 +0000)]
update HEAD FAQ

14 years agocryptlib.c: allow application to override OPENSSL_isservice.
Andy Polyakov [Mon, 29 Mar 2010 10:06:01 +0000 (10:06 +0000)]
cryptlib.c: allow application to override OPENSSL_isservice.
PR: 2194

14 years agoARMv4 assembler: fix compilation failure. Fix is actually unconfirmed, but
Andy Polyakov [Mon, 29 Mar 2010 09:55:19 +0000 (09:55 +0000)]
ARMv4 assembler: fix compilation failure. Fix is actually unconfirmed, but
I can't think of any other cause for failure

14 years agodso_dlfcn.c: fix compile failure on Tru64.
Andy Polyakov [Mon, 29 Mar 2010 09:50:02 +0000 (09:50 +0000)]
dso_dlfcn.c: fix compile failure on Tru64.

14 years agoPR: 1696
Dr. Stephen Henson [Sun, 28 Mar 2010 00:42:38 +0000 (00:42 +0000)]
PR: 1696

Check return value if d2i_PBEPARAM().

14 years agoPR: 1763
Dr. Stephen Henson [Sat, 27 Mar 2010 23:28:09 +0000 (23:28 +0000)]
PR: 1763

Remove useless num = 0 assignment.

Remove redundant cases on sock_ctrl(): default case handles them.

14 years agosync ordinals with 1.0.0
Dr. Stephen Henson [Sat, 27 Mar 2010 19:32:11 +0000 (19:32 +0000)]
sync ordinals with 1.0.0

14 years agoPR: 1904
Dr. Stephen Henson [Sat, 27 Mar 2010 19:31:55 +0000 (19:31 +0000)]
PR: 1904
Submitted by: David Woodhouse <dwmw2@infradead.org>

Pass passphrase minimum length down to UI.

14 years agoPR: 1813
Dr. Stephen Henson [Sat, 27 Mar 2010 18:28:02 +0000 (18:28 +0000)]
PR: 1813
Submitted by: Torsten Hilbrich <torsten.hilbrich@secunet.com>

Fix memory leak when engine name cannot be loaded.

14 years agoupdate FAQ
Dr. Stephen Henson [Thu, 25 Mar 2010 12:08:19 +0000 (12:08 +0000)]
update FAQ

14 years agoFix for "Record of death" vulnerability CVE-2010-0740.
Bodo Möller [Thu, 25 Mar 2010 11:25:30 +0000 (11:25 +0000)]
Fix for "Record of death" vulnerability CVE-2010-0740.

Also, add missing CHANGES entry for CVE-2009-3245 (code changes submitted to this branch on 23 Feb 2010),
and further harmonize this version of CHANGES with the versions in the current branches.

14 years agoinitialise buf if wrong_info not used
Dr. Stephen Henson [Wed, 24 Mar 2010 23:42:05 +0000 (23:42 +0000)]
initialise buf if wrong_info not used

14 years agoPR: 1731 and maybe 2197
Dr. Stephen Henson [Wed, 24 Mar 2010 23:17:15 +0000 (23:17 +0000)]
PR: 1731 and maybe 2197

Clear error queue in a few places in SSL code where errors are expected
so they don't stay in the queue.

14 years agorand_win.c: fix logical bug in readscreen.
Andy Polyakov [Mon, 22 Mar 2010 22:44:22 +0000 (22:44 +0000)]
rand_win.c: fix logical bug in readscreen.

14 years agobss_file.c: fix MSC 6.0 warning.
Andy Polyakov [Mon, 22 Mar 2010 22:38:56 +0000 (22:38 +0000)]
bss_file.c: fix MSC 6.0 warning.

14 years agoGHASH assembler: new ghash-sparcv9.pl module and saner descriptions.
Andy Polyakov [Mon, 22 Mar 2010 17:24:18 +0000 (17:24 +0000)]
GHASH assembler: new ghash-sparcv9.pl module and saner descriptions.

14 years agoe_capi.c: fix typo.
Andy Polyakov [Mon, 15 Mar 2010 22:28:48 +0000 (22:28 +0000)]
e_capi.c: fix typo.

14 years agoFix UPLINK typo.
Andy Polyakov [Mon, 15 Mar 2010 22:25:57 +0000 (22:25 +0000)]
Fix UPLINK typo.

14 years agoghash-ia64.pl: new file, GHASH for Itanium.
Andy Polyakov [Mon, 15 Mar 2010 19:07:52 +0000 (19:07 +0000)]
ghash-ia64.pl: new file, GHASH for Itanium.
ghash-x86_64.pl: minimize stack frame usage.
ghash-x86.pl: modulo-scheduling MMX loop in respect to input vector
results in up to 10% performance improvement.

14 years agoworkaround for missing definition in some headers
Dr. Stephen Henson [Mon, 15 Mar 2010 13:10:08 +0000 (13:10 +0000)]
workaround for missing definition in some headers

14 years agoprint signature parameters with CRLs too
Dr. Stephen Henson [Sun, 14 Mar 2010 13:10:48 +0000 (13:10 +0000)]
print signature parameters with CRLs too

14 years agofree up sigopts STACK
Dr. Stephen Henson [Sun, 14 Mar 2010 13:09:00 +0000 (13:09 +0000)]
free up sigopts STACK

14 years agoclear bogus errors in ca utility
Dr. Stephen Henson [Sun, 14 Mar 2010 13:07:48 +0000 (13:07 +0000)]
clear bogus errors in ca utility