oweals/openssl.git
14 years agotypo
Dr. Stephen Henson [Thu, 11 Mar 2010 14:19:46 +0000 (14:19 +0000)]
typo

14 years agoRSA PSS ASN1 signing method
Dr. Stephen Henson [Thu, 11 Mar 2010 14:06:46 +0000 (14:06 +0000)]
RSA PSS ASN1 signing method

14 years agotypo
Dr. Stephen Henson [Thu, 11 Mar 2010 14:04:54 +0000 (14:04 +0000)]
typo

14 years agoctrl operations to retrieve RSA algorithm settings
Dr. Stephen Henson [Thu, 11 Mar 2010 13:55:18 +0000 (13:55 +0000)]
ctrl operations to retrieve RSA algorithm settings

14 years agoAdd support for new PSS functions in RSA EVP_PKEY_METHOD
Dr. Stephen Henson [Thu, 11 Mar 2010 13:45:42 +0000 (13:45 +0000)]
Add support for new PSS functions in RSA EVP_PKEY_METHOD

14 years agoExtend PSS padding code to support different digests for MGF1 and message.
Dr. Stephen Henson [Thu, 11 Mar 2010 13:40:42 +0000 (13:40 +0000)]
Extend PSS padding code to support different digests for MGF1 and message.

14 years agoAlgorithm specific ASN1 signing functions.
Dr. Stephen Henson [Thu, 11 Mar 2010 13:32:38 +0000 (13:32 +0000)]
Algorithm specific ASN1 signing functions.

14 years agoupdate cms code to use X509_ALGOR_set_md instead of internal function
Dr. Stephen Henson [Thu, 11 Mar 2010 13:29:39 +0000 (13:29 +0000)]
update cms code to use X509_ALGOR_set_md instead of internal function

14 years agoNew function X509_ALGOR_set_md() to set X509_ALGOR (DigestAlgorithmIdentifier)
Dr. Stephen Henson [Thu, 11 Mar 2010 13:27:05 +0000 (13:27 +0000)]
New function X509_ALGOR_set_md() to set X509_ALGOR (DigestAlgorithmIdentifier)
from a digest algorithm.

14 years agodon't leave bogus errors in the queue
Dr. Stephen Henson [Wed, 10 Mar 2010 13:48:09 +0000 (13:48 +0000)]
don't leave bogus errors in the queue

14 years agoAdd GHASH x86 assembler.
Andy Polyakov [Tue, 9 Mar 2010 23:03:33 +0000 (23:03 +0000)]
Add GHASH x86 assembler.

14 years agoPR: 2188
Dr. Stephen Henson [Tue, 9 Mar 2010 17:24:33 +0000 (17:24 +0000)]
PR: 2188
Submitted By: Jaroslav Imrich <jaroslav.imrich@disig.sk>

Add "missing" functions to get and set prompt constructor.

14 years agoPR: 2186
Dr. Stephen Henson [Tue, 9 Mar 2010 17:08:48 +0000 (17:08 +0000)]
PR: 2186
Submitted By: "Joel Rabinovitch" <Joel.Rabinovitch@tecsys.com>

Detect aix64-gcc

14 years agoreserve a few more bits for future cipher modes
Dr. Stephen Henson [Mon, 8 Mar 2010 23:48:21 +0000 (23:48 +0000)]
reserve a few more bits for future cipher modes

14 years agogcm128.c: add option for streamed GHASH, simple benchmark, minor naming
Andy Polyakov [Mon, 8 Mar 2010 22:44:37 +0000 (22:44 +0000)]
gcm128.c: add option for streamed GHASH, simple benchmark, minor naming
change.

14 years agoRSA PSS verification support including certificates and certificate
Dr. Stephen Henson [Mon, 8 Mar 2010 18:10:35 +0000 (18:10 +0000)]
RSA PSS verification support including certificates and certificate
requests. Add new ASN1 signature initialisation function to handle this
case.

14 years agocorrect error code
Dr. Stephen Henson [Mon, 8 Mar 2010 18:07:05 +0000 (18:07 +0000)]
correct error code

14 years agoprint outermost signature algorithm parameters too
Dr. Stephen Henson [Sun, 7 Mar 2010 17:02:47 +0000 (17:02 +0000)]
print outermost signature algorithm parameters too

14 years agooops
Dr. Stephen Henson [Sun, 7 Mar 2010 16:41:54 +0000 (16:41 +0000)]
oops

14 years agoThe OID sanity check was incorrect. It should only disallow *leading* 0x80
Dr. Stephen Henson [Sun, 7 Mar 2010 16:40:05 +0000 (16:40 +0000)]
The OID sanity check was incorrect. It should only disallow *leading* 0x80
values.

14 years agoalthough AES is a variable length cipher, AES EVP methods have a fixed key length
Dr. Stephen Henson [Sun, 7 Mar 2010 15:54:26 +0000 (15:54 +0000)]
although AES is a variable length cipher, AES EVP methods have a fixed key length

14 years agooops, make EVP ctr mode work again
Dr. Stephen Henson [Sun, 7 Mar 2010 15:52:41 +0000 (15:52 +0000)]
oops, make EVP ctr mode work again

14 years agotypo
Dr. Stephen Henson [Sun, 7 Mar 2010 15:37:37 +0000 (15:37 +0000)]
typo

14 years agoadd separate PSS decode function, rename PSS parameters to RSA_PSS_PARAMS
Dr. Stephen Henson [Sun, 7 Mar 2010 13:34:51 +0000 (13:34 +0000)]
add separate PSS decode function, rename PSS parameters to RSA_PSS_PARAMS

14 years agoadd MGF1 digest ctrl
Dr. Stephen Henson [Sun, 7 Mar 2010 13:34:15 +0000 (13:34 +0000)]
add MGF1 digest ctrl

14 years agoupdate ASN1 sign/verify to use EVP_DigestSign and EVP_DigestVerify
Dr. Stephen Henson [Sun, 7 Mar 2010 12:05:45 +0000 (12:05 +0000)]
update ASN1 sign/verify to use EVP_DigestSign and EVP_DigestVerify

14 years agodon't add digest alias if signature algorithm is undefined
Dr. Stephen Henson [Sat, 6 Mar 2010 20:47:30 +0000 (20:47 +0000)]
don't add digest alias if signature algorithm is undefined

14 years agoAdd PSS algorithm printing. This is an initial step towards full PSS support.
Dr. Stephen Henson [Sat, 6 Mar 2010 19:55:25 +0000 (19:55 +0000)]
Add PSS algorithm printing. This is an initial step towards full PSS support.

Uses ASN1 module in Martin Kaiser's PSS patch.

14 years agofix indent, newline
Dr. Stephen Henson [Sat, 6 Mar 2010 18:14:13 +0000 (18:14 +0000)]
fix indent, newline

14 years agoAdd algorithm specific signature printing. An individual ASN1 method can
Dr. Stephen Henson [Sat, 6 Mar 2010 18:05:05 +0000 (18:05 +0000)]
Add algorithm specific signature printing. An individual ASN1 method can
now print out signatures instead of the standard hex dump.

More complex signatures (e.g. PSS) can print out more meaningful information.

Sample DSA version included that prints out the signature parameters r, s.

[Note EVP_PKEY_ASN1_METHOD is an application opaque structure so adding
 new fields in the middle has no compatibility issues]

14 years agoFix memory leak: free up ENGINE functional reference if digest is not
Dr. Stephen Henson [Fri, 5 Mar 2010 13:33:21 +0000 (13:33 +0000)]
Fix memory leak: free up ENGINE functional reference if digest is not
found in an ENGINE.

14 years agoAdd -engine_impl option to dgst which will use an implementation of
Dr. Stephen Henson [Fri, 5 Mar 2010 13:28:21 +0000 (13:28 +0000)]
Add -engine_impl option to dgst which will use an implementation of
an algorithm from the supplied engine instead of just the default one.

14 years agooption to replace extensions with new ones: mainly for creating cross-certificates
Dr. Stephen Henson [Wed, 3 Mar 2010 20:13:30 +0000 (20:13 +0000)]
option to replace extensions with new ones: mainly for creating cross-certificates

14 years agoPR: 2183
Dr. Stephen Henson [Wed, 3 Mar 2010 19:56:34 +0000 (19:56 +0000)]
PR: 2183

PR#1999 broke fork detection by assuming HAVE_FORK was set for all platforms.
Include original HAVE_FORK detection logic while allowing it to be
overridden on specific platforms with -DHAVE_FORK=1 or -DHAVE_FORK=0

14 years agoSubmitted by: Tomas Hoger <thoger@redhat.com>
Dr. Stephen Henson [Wed, 3 Mar 2010 15:41:18 +0000 (15:41 +0000)]
Submitted by: Tomas Hoger <thoger@redhat.com>

Fix for CVE-2010-0433 where some kerberos enabled versions of OpenSSL
could be crashed if the relevant tables were not present (e.g. chrooted).

14 years agodon't mix definitions and code
Dr. Stephen Henson [Wed, 3 Mar 2010 15:30:42 +0000 (15:30 +0000)]
don't mix definitions and code

14 years agoInitial version of Galois Counter Mode implementation. Interface is still
Andy Polyakov [Tue, 2 Mar 2010 16:33:25 +0000 (16:33 +0000)]
Initial version of Galois Counter Mode implementation. Interface is still
subject to change...

14 years agoppccap.c: portability fix.
Andy Polyakov [Tue, 2 Mar 2010 16:28:29 +0000 (16:28 +0000)]
ppccap.c: portability fix.

14 years agoFix s390x-specific HOST_l2c|c2l.
Andy Polyakov [Tue, 2 Mar 2010 16:23:40 +0000 (16:23 +0000)]
Fix s390x-specific HOST_l2c|c2l.

Submitted by: Andreas Krebbel

14 years agoPR: 2178
Dr. Stephen Henson [Mon, 1 Mar 2010 23:54:47 +0000 (23:54 +0000)]
PR: 2178
Submitted by: "Kennedy, Brendan" <brendan.kennedy@intel.com>

Handle error codes correctly: cryptodev returns 0 for success whereas OpenSSL
returns 1.

14 years agouse supplied ENGINE in genrsa
Dr. Stephen Henson [Mon, 1 Mar 2010 14:22:21 +0000 (14:22 +0000)]
use supplied ENGINE in genrsa

14 years agooops, reinstate correct prototype
Dr. Stephen Henson [Mon, 1 Mar 2010 03:01:27 +0000 (03:01 +0000)]
oops, reinstate correct prototype

14 years ago'typo'
Dr. Stephen Henson [Mon, 1 Mar 2010 01:53:34 +0000 (01:53 +0000)]
'typo'

14 years agomake USE_CRYPTODEV_DIGESTS work
Dr. Stephen Henson [Mon, 1 Mar 2010 01:19:18 +0000 (01:19 +0000)]
make USE_CRYPTODEV_DIGESTS work

14 years agoload cryptodev if HAVE_CRYPTODEV is set too
Dr. Stephen Henson [Mon, 1 Mar 2010 00:40:10 +0000 (00:40 +0000)]
load cryptodev if HAVE_CRYPTODEV is set too

14 years agoupdate cryptodev to match 1.0.0 stable branch version
Dr. Stephen Henson [Mon, 1 Mar 2010 00:37:58 +0000 (00:37 +0000)]
update cryptodev to match 1.0.0 stable branch version

14 years agoFix warnings (note that gcc 4.2 has a bug that makes one of its
Ben Laurie [Sun, 28 Feb 2010 14:22:56 +0000 (14:22 +0000)]
Fix warnings (note that gcc 4.2 has a bug that makes one of its
warnings hard to fix without major surgery).

14 years agoalgorithms field has changed in 1.0.0 and later: update
Dr. Stephen Henson [Sun, 28 Feb 2010 00:24:04 +0000 (00:24 +0000)]
algorithms field has changed in 1.0.0 and later: update

14 years agooops, revert verify.c change
Dr. Stephen Henson [Sat, 27 Feb 2010 23:03:26 +0000 (23:03 +0000)]
oops, revert verify.c change

14 years agoAdd Kerberos fix which was in 0.9.8-stable but never committed to HEAD and
Dr. Stephen Henson [Sat, 27 Feb 2010 23:02:41 +0000 (23:02 +0000)]
Add Kerberos fix which was in 0.9.8-stable but never committed to HEAD and
1.0.0. Original fix was on 2007-Mar-09 and had the log message: "Fix kerberos
ciphersuite bugs introduced with PR:1336."

14 years agoinclude TVS 1.1 version string
Dr. Stephen Henson [Fri, 26 Feb 2010 19:38:33 +0000 (19:38 +0000)]
include TVS 1.1 version string

14 years agoRevert CFB block length change. Despite what SP800-38a says the input to
Dr. Stephen Henson [Fri, 26 Feb 2010 14:41:58 +0000 (14:41 +0000)]
Revert CFB block length change. Despite what SP800-38a says the input to
CFB mode does *not* have to be a multiple of the block length and several
other specifications (e.g. PKCS#11) do not require this.

14 years agooops, use correct date
Dr. Stephen Henson [Fri, 26 Feb 2010 12:13:36 +0000 (12:13 +0000)]
oops, use correct date

14 years agoupdate NEWS
Dr. Stephen Henson [Thu, 25 Feb 2010 18:20:30 +0000 (18:20 +0000)]
update NEWS

14 years agoupdate FAQ
Dr. Stephen Henson [Thu, 25 Feb 2010 18:18:46 +0000 (18:18 +0000)]
update FAQ

14 years agoadd -trusted_first option and verify flag
Dr. Stephen Henson [Thu, 25 Feb 2010 12:21:48 +0000 (12:21 +0000)]
add -trusted_first option and verify flag

14 years agotidy verify code. xn not used any more and check for self signed more efficiently
Dr. Stephen Henson [Thu, 25 Feb 2010 11:18:26 +0000 (11:18 +0000)]
tidy verify code. xn not used any more and check for self signed more efficiently

14 years agoExperimental support for partial chain verification: if an intermediate
Dr. Stephen Henson [Thu, 25 Feb 2010 00:17:22 +0000 (00:17 +0000)]
Experimental support for partial chain verification: if an intermediate
certificate is explicitly trusted (using -addtrust option to x509 utility
for example) the verification is sucessful even if the chain is not complete.

14 years agoallow setting of verify names in command line utilities and print out verify names...
Dr. Stephen Henson [Thu, 25 Feb 2010 00:11:32 +0000 (00:11 +0000)]
allow setting of verify names in command line utilities and print out verify names in verify utility

14 years agoverify parameter enumeration functions
Dr. Stephen Henson [Thu, 25 Feb 2010 00:08:23 +0000 (00:08 +0000)]
verify parameter enumeration functions

14 years agoInclude self-signed flag in certificates by checking SKID/AKID as well
Dr. Stephen Henson [Thu, 25 Feb 2010 00:01:38 +0000 (00:01 +0000)]
Include self-signed flag in certificates by checking SKID/AKID as well
as issuer and subject names. Although this is an incompatible change
it should have little impact in pratice because self-issued certificates
that are not self-signed are rarely encountered.

14 years agoadd anyExtendedKeyUsage OID
Dr. Stephen Henson [Wed, 24 Feb 2010 15:53:58 +0000 (15:53 +0000)]
add anyExtendedKeyUsage OID

14 years agoprevent warning
Dr. Stephen Henson [Wed, 24 Feb 2010 15:24:19 +0000 (15:24 +0000)]
prevent warning

14 years agoReserve for option to implement AES counter in assembler.
Andy Polyakov [Tue, 23 Feb 2010 16:51:24 +0000 (16:51 +0000)]
Reserve for option to implement AES counter in assembler.

14 years agoAdd AES counter mode to EVP.
Andy Polyakov [Tue, 23 Feb 2010 16:48:41 +0000 (16:48 +0000)]
Add AES counter mode to EVP.

14 years agoAdd assigned OIDs, as well as "anonymous" ones for AES counter mode.
Andy Polyakov [Tue, 23 Feb 2010 16:47:17 +0000 (16:47 +0000)]
Add assigned OIDs, as well as "anonymous" ones for AES counter mode.

14 years agoThe meaning of the X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY and
Dr. Stephen Henson [Tue, 23 Feb 2010 14:09:09 +0000 (14:09 +0000)]
The meaning of the X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY and
X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT error codes were reversed in
the verify application documentation.

14 years agoAlways check bn_wexpend() return values for failure (CVE-2009-3245).
Bodo Möller [Tue, 23 Feb 2010 10:36:35 +0000 (10:36 +0000)]
Always check bn_wexpend() return values for failure (CVE-2009-3245).

(The CHANGES entry covers the change from PR #2111 as well, submitted by
Martin Olsson.)

Submitted by: Neel Mehta

14 years agoFix X509_STORE locking
Bodo Möller [Fri, 19 Feb 2010 18:27:07 +0000 (18:27 +0000)]
Fix X509_STORE locking

14 years agoclarify documentation
Dr. Stephen Henson [Thu, 18 Feb 2010 12:41:33 +0000 (12:41 +0000)]
clarify documentation

14 years agoOR default SSL_OP_LEGACY_SERVER_CONNECT so existing options are preserved
Dr. Stephen Henson [Wed, 17 Feb 2010 19:43:56 +0000 (19:43 +0000)]
OR default SSL_OP_LEGACY_SERVER_CONNECT so existing options are preserved

14 years agoAllow renegotiation if SSL_OP_LEGACY_SERVER_CONNECT is set as well as
Dr. Stephen Henson [Wed, 17 Feb 2010 18:38:31 +0000 (18:38 +0000)]
Allow renegotiation if SSL_OP_LEGACY_SERVER_CONNECT is set as well as
initial connection to unpatched servers. There are no additional security
concerns in doing this as clients don't see renegotiation during an
attack anyway.

14 years agoPR: 2100
Dr. Stephen Henson [Wed, 17 Feb 2010 14:32:41 +0000 (14:32 +0000)]
PR: 2100
Submitted by: James Baker <jbaker@tableausoftware.com> et al.

Workaround for slow Heap32Next on some versions of Windows.

14 years agoSubmitted by: Dmitry Ivanov <vonami@gmail.com>
Dr. Stephen Henson [Tue, 16 Feb 2010 14:30:29 +0000 (14:30 +0000)]
Submitted by:  Dmitry Ivanov <vonami@gmail.com>

Don't leave dangling pointers in GOST engine if calls fail.

14 years agoPR: 2171
Dr. Stephen Henson [Tue, 16 Feb 2010 14:21:11 +0000 (14:21 +0000)]
PR: 2171
Submitted by: Tomas Mraz <tmraz@redhat.com>

Since SSLv2 doesn't support renegotiation at all don't reject it if
legacy renegotiation isn't enabled.

Also can now use SSL2 compatible client hello because RFC5746 supports it.

14 years agoThe "block length" for CFB mode was incorrectly coded as 1 all the time. It
Dr. Stephen Henson [Mon, 15 Feb 2010 19:40:16 +0000 (19:40 +0000)]
The "block length" for CFB mode was incorrectly coded as 1 all the time. It
should be the number of feedback bits expressed in bytes. For CFB1 mode set
this to 1 by rounding up to the nearest multiple of 8.

14 years agoCorrect ECB mode EVP_CIPHER definition: IV length is 0
Dr. Stephen Henson [Mon, 15 Feb 2010 19:26:02 +0000 (19:26 +0000)]
Correct ECB mode EVP_CIPHER definition: IV length is 0

14 years agoadd EVP_CIPH_FLAG_LENGTH_BITS from 0.9.8-stable
Dr. Stephen Henson [Mon, 15 Feb 2010 19:20:13 +0000 (19:20 +0000)]
add EVP_CIPH_FLAG_LENGTH_BITS from 0.9.8-stable

14 years agoPR: 2164
Dr. Stephen Henson [Mon, 15 Feb 2010 19:00:12 +0000 (19:00 +0000)]
PR: 2164
Submitted by: "Noszticzius, Istvan" <inoszticzius@rightnow.com>

Don't clear the output buffer: ciphers should correctly the same input
and output buffers.

14 years agoupdate references to new RI RFC
Dr. Stephen Henson [Fri, 12 Feb 2010 21:59:31 +0000 (21:59 +0000)]
update references to new RI RFC

14 years agoPR: 2170
Dr. Stephen Henson [Fri, 12 Feb 2010 17:07:16 +0000 (17:07 +0000)]
PR: 2170
Submitted by: Magnus Lilja <lilja.magnus@gmail.com>

Make -c option in dgst work again.

14 years agoFix memory leak in ENGINE autoconfig code. Improve error logging.
Dr. Stephen Henson [Tue, 9 Feb 2010 14:17:14 +0000 (14:17 +0000)]
Fix memory leak in ENGINE autoconfig code. Improve error logging.

14 years agoupdate year
Dr. Stephen Henson [Tue, 9 Feb 2010 14:12:49 +0000 (14:12 +0000)]
update year

14 years agoUse supplied ENGINE when initialising CMAC. Restore pctx setting.
Dr. Stephen Henson [Mon, 8 Feb 2010 16:31:28 +0000 (16:31 +0000)]
Use supplied ENGINE when initialising CMAC. Restore pctx setting.

14 years agoadd cvsignore
Dr. Stephen Henson [Mon, 8 Feb 2010 15:34:02 +0000 (15:34 +0000)]
add cvsignore

14 years agoMake update.
Dr. Stephen Henson [Mon, 8 Feb 2010 15:33:23 +0000 (15:33 +0000)]
Make update.

14 years agoMake CMAC API similar to HMAC API. Add methods for CMAC.
Dr. Stephen Henson [Mon, 8 Feb 2010 15:31:35 +0000 (15:31 +0000)]
Make CMAC API similar to HMAC API. Add methods for CMAC.

14 years agoInitial experimental CMAC implementation.
Dr. Stephen Henson [Sun, 7 Feb 2010 18:01:07 +0000 (18:01 +0000)]
Initial experimental CMAC implementation.

14 years agomake update
Dr. Stephen Henson [Sun, 7 Feb 2010 13:54:30 +0000 (13:54 +0000)]
make update

14 years agooops, use new value for new flag
Dr. Stephen Henson [Sun, 7 Feb 2010 13:50:36 +0000 (13:50 +0000)]
oops, use new value for new flag

14 years agoAdd missing function EVP_CIPHER_CTX_copy(). Current code uses memcpy() to copy
Dr. Stephen Henson [Sun, 7 Feb 2010 13:39:39 +0000 (13:39 +0000)]
Add missing function EVP_CIPHER_CTX_copy(). Current code uses memcpy() to copy
an EVP_CIPHER_CTX structure which may have problems with external ENGINEs
who need to duplicate internal handles etc.

14 years agodon't assume 0x is at start of string
Dr. Stephen Henson [Wed, 3 Feb 2010 18:19:22 +0000 (18:19 +0000)]
don't assume 0x is at start of string

14 years agotolerate broken CMS/PKCS7 implementations using signature OID instead of digest
Dr. Stephen Henson [Tue, 2 Feb 2010 14:30:39 +0000 (14:30 +0000)]
tolerate broken CMS/PKCS7 implementations using signature OID instead of digest

14 years agoPR: 2161
Dr. Stephen Henson [Tue, 2 Feb 2010 13:35:27 +0000 (13:35 +0000)]
PR: 2161
Submitted by: Doug Goldstein <cardoe@gentoo.org>, Steve.

Make no-dsa, no-ecdsa and no-rsa compile again.

14 years agoPR: 2160
Dr. Stephen Henson [Mon, 1 Feb 2010 16:51:09 +0000 (16:51 +0000)]
PR: 2160
Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>

Make session tickets work with DTLS.

14 years agoPR: 2159
Dr. Stephen Henson [Mon, 1 Feb 2010 12:43:45 +0000 (12:43 +0000)]
PR: 2159
Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>

Typo in PR#1949 bug, oops!

14 years agoTypo.
Richard Levitte [Fri, 29 Jan 2010 12:07:46 +0000 (12:07 +0000)]
Typo.

14 years agoThe previous take went wrong, try again.
Richard Levitte [Fri, 29 Jan 2010 12:02:50 +0000 (12:02 +0000)]
The previous take went wrong, try again.

14 years agoArchitecture specific header files need special handling.
Richard Levitte [Fri, 29 Jan 2010 11:44:36 +0000 (11:44 +0000)]
Architecture specific header files need special handling.

14 years agoIf opensslconf.h and buildinf.h are to be in an architecture specific
Richard Levitte [Fri, 29 Jan 2010 11:43:50 +0000 (11:43 +0000)]
If opensslconf.h and buildinf.h are to be in an architecture specific
directory, place it in the same tree as the other architecture
specific things.