diff --git a/include/openssl/ecdsa.h b/include/openssl/ecdsa.h
index 84702c3..b7f15c4 100644
--- a/include/openssl/ecdsa.h
+++ b/include/openssl/ecdsa.h
@@ -161,7 +161,7 @@
  * the result to |cbb|. It returns one on success and zero on error. */
 OPENSSL_EXPORT int ECDSA_SIG_marshal(CBB *cbb, const ECDSA_SIG *sig);
 
-/* ECDSA_SIG_to_asn1 marshals |sig| as a DER-encoded ECDSA-Sig-Value and, on
+/* ECDSA_SIG_to_bytes marshals |sig| as a DER-encoded ECDSA-Sig-Value and, on
  * success, sets |*out_bytes| to a newly allocated buffer containing the result
  * and returns one. Otherwise, it returns zero. The result should be freed with
  * |OPENSSL_free|. */
diff --git a/include/openssl/poly1305.h b/include/openssl/poly1305.h
index 0da9f6e..b4e23e2 100644
--- a/include/openssl/poly1305.h
+++ b/include/openssl/poly1305.h
@@ -24,21 +24,22 @@
 
 typedef uint8_t poly1305_state[512];
 
-/* poly1305_init sets up |state| so that it can be used to calculate an
+/* CRYPTO_poly1305_init sets up |state| so that it can be used to calculate an
  * authentication tag with the one-time key |key|. Note that |key| is a
  * one-time key and therefore there is no `reset' method because that would
  * enable several messages to be authenticated with the same key. */
 OPENSSL_EXPORT void CRYPTO_poly1305_init(poly1305_state* state,
                                          const uint8_t key[32]);
 
-/* poly1305_update processes |in_len| bytes from |in|. It can be called zero or
- * more times after poly1305_init. */
+/* CRYPTO_poly1305_update processes |in_len| bytes from |in|. It can be called
+ * zero or more times after poly1305_init. */
 OPENSSL_EXPORT void CRYPTO_poly1305_update(poly1305_state* state,
                                            const uint8_t* in,
                                            size_t in_len);
 
-/* poly1305_finish completes the poly1305 calculation and writes a 16 byte
- * authentication tag to |mac|. The |mac| address must be 16-byte aligned. */
+/* CRYPTO_poly1305_finish completes the poly1305 calculation and writes a 16
+ * byte authentication tag to |mac|. The |mac| address must be 16-byte
+ * aligned. */
 OPENSSL_EXPORT void CRYPTO_poly1305_finish(poly1305_state* state,
                                            uint8_t mac[16]);
 
diff --git a/include/openssl/ssl.h b/include/openssl/ssl.h
index 24bdf8e..ceb21f1 100644
--- a/include/openssl/ssl.h
+++ b/include/openssl/ssl.h
@@ -840,10 +840,10 @@
 OPENSSL_EXPORT int SSL_use_PrivateKey_file(SSL *ssl, const char *file,
                                            int type);
 
-/* SSL_CTX_use_certificate_file configures certificates for |ctx|. It reads the
- * contents of |file| as a PEM-encoded leaf certificate followed optionally by
- * the certificate chain to send to the peer. It returns one on success and zero
- * on failure. */
+/* SSL_CTX_use_certificate_chain_file configures certificates for |ctx|. It
+ * reads the contents of |file| as a PEM-encoded leaf certificate followed
+ * optionally by the certificate chain to send to the peer. It returns one on
+ * success and zero on failure. */
 OPENSSL_EXPORT int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx,
                                                       const char *file);
 
@@ -1130,9 +1130,9 @@
  * be used. */
 OPENSSL_EXPORT long SSL_SESSION_set_time(SSL_SESSION *session, long time);
 
-/* SSL_SESSION_set_time sets |session|'s timeout to |timeout| and returns one.
- * This function may be useful in writing tests but otherwise should not be
- * used. */
+/* SSL_SESSION_set_timeout sets |session|'s timeout to |timeout| and returns
+ * one. This function may be useful in writing tests but otherwise should not
+ * be used. */
 OPENSSL_EXPORT long SSL_SESSION_set_timeout(SSL_SESSION *session, long timeout);
 
 /* SSL_SESSION_set1_id_context sets |session|'s session ID context (see
