---
name: "SSL_get_peer_tmp_key"
section: "3ssl"
platform: "linux"
package: "openssl"
version: "3.6.5-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/SSL_get_peer_tmp_key"
---

# SSL\_get\_peer\_tmp\_key(3ssl)

get information about temporary keys used during a handshake

## NAME

SSL\_get\_peer\_tmp\_key, SSL\_get\_server\_tmp\_key, SSL\_get\_tmp\_key - get information about temporary keys used during a handshake

## SYNOPSIS

```
 #include <openssl/ssl.h>
 long SSL_get_peer_tmp_key(SSL *ssl, EVP_PKEY **key);
 long SSL_get_server_tmp_key(SSL *ssl, EVP_PKEY **key);
 long SSL_get_tmp_key(SSL *ssl, EVP_PKEY **key);
```

## DESCRIPTION

**SSL\_get\_peer\_tmp\_key()** returns the temporary key provided by the peer and used during key exchange. For example, if ECDHE is in use, then this represents the peer's public ECDHE key. On success a pointer to the key is stored in **\*key**. It is the caller's responsibility to free this key after use using **EVP\_PKEY\_free**(3).

**SSL\_get\_server\_tmp\_key()** is a backwards compatibility alias for **SSL\_get\_peer\_tmp\_key()**. Under that name it worked just on the client side of the connection, its behaviour on the server end is release-dependent.

**SSL\_get\_tmp\_key()** returns the equivalent information for the local end of the connection.

## RETURN VALUES

All these functions return 1 on success and 0 otherwise.

## NOTES

This function is implemented as a macro.

## SEE ALSO

[**ssl**(7)](/ssl/7.md), **EVP\_PKEY\_free**(3)

## HISTORY

**SSL\_get\_peer\_tmp\_key()**, **SSL\_get\_tmp\_key()** were added in OpenSSL 1.1.1a.

## COPYRIGHT

Copyright 2017-2025 The OpenSSL Project Authors. All Rights Reserved.

Licensed under the Apache License 2.0 (the "License").  You may not use this file except in compliance with the License.  You can obtain a copy in the file LICENSE in the source distribution or at \<https://www.openssl.org/source/license.html\>.
