diff --git a/src/security/identity.hpp b/src/security/identity.hpp
index 533bfc9..d77428d 100644
--- a/src/security/identity.hpp
+++ b/src/security/identity.hpp
@@ -76,8 +76,8 @@
   /**
    * @brief Get a key with id @keyId.
    *
-   * @param identityName The name for the identity to get.
-   * @throw Pib::Error if the identity does not exist.
+   * @param keyId The id of the key to get.
+   * @throw Pib::Error if the key does not exist.
    */
   Key
   getKey(const name::Component& keyId) const;
diff --git a/src/security/key-chain.hpp b/src/security/key-chain.hpp
index 7f16cd0..c9ed28c 100644
--- a/src/security/key-chain.hpp
+++ b/src/security/key-chain.hpp
@@ -132,8 +132,8 @@
    *
    * @sa  http://redmine.named-data.net/issues/2260
    *
-   * @param pibLocator
-   * @param tpmLocator
+   * @param pibLocator PIB locator
+   * @param tpmLocator TPM locator
    * @param allowReset if true, the PIB will be reset when the supplied tpmLocator
    *        mismatches the one in PIB
    */
@@ -778,7 +778,6 @@
   /**
    * @brief Prepare a SignatureInfo TLV according to signing information and return the signing key name
    *
-   * @param sigInfo The SignatureInfo to prepare.
    * @param params The signing parameters.
    * @return The signing key name and prepared SignatureInfo.
    * @throw Error when the requested signing method cannot be satisfied.
diff --git a/src/security/pib-impl.hpp b/src/security/pib-impl.hpp
index fae035e..080dc48 100644
--- a/src/security/pib-impl.hpp
+++ b/src/security/pib-impl.hpp
@@ -68,7 +68,7 @@
    * If the provided @p tpmLocator is different from the existing one, the
    * content in PIB will be cleaned up, otherwise nothing will be changed.
    *
-   * @param tmpLocator The name for the new tmpLocator
+   * @param tpmLocator The name for the new TPM locator
    */
   virtual void
   setTpmLocator(const std::string& tpmLocator) = 0;
diff --git a/src/security/pib-sqlite3.hpp b/src/security/pib-sqlite3.hpp
index 4e521eb..a9fabe9 100644
--- a/src/security/pib-sqlite3.hpp
+++ b/src/security/pib-sqlite3.hpp
@@ -66,7 +66,7 @@
    * If the provided @p tpmLocator is different from the existing one, the
    * content in PIB will be cleaned up, otherwise nothing will be changed.
    *
-   * @param tmpLocator The name for the new tmpLocator
+   * @param tpmLocator The name for the new TPM locator
    */
   virtual void
   setTpmLocator(const std::string& tpmLocator) NDN_CXX_DECL_FINAL;
diff --git a/src/security/pib.hpp b/src/security/pib.hpp
index 5d28edd..1fd2006 100644
--- a/src/security/pib.hpp
+++ b/src/security/pib.hpp
@@ -87,7 +87,7 @@
    * If the provided @p tpmLocator is different from the existing one, the
    * PIB will be reset, otherwise nothing will be changed.
    *
-   * @param tmpLocator The name for the new tmpLocator
+   * @param tpmLocator The name for the new TPM locator
    */
   void
   setTpmLocator(const std::string& tpmLocator);
diff --git a/src/security/public-key.hpp b/src/security/public-key.hpp
index e739717..3f90783 100644
--- a/src/security/public-key.hpp
+++ b/src/security/public-key.hpp
@@ -57,7 +57,7 @@
   PublicKey();
 
   /**
-   * @brief Create a new PublicKey from @param keyDerBuf in DER buffer
+   * @brief Create a new PublicKey from @p keyDerBuf in DER buffer
    *
    * @param keyDerBuf The pointer to the first byte of buffer containing DER of public key
    * @param keyDerSize Size of the buffer
diff --git a/src/security/sec-tpm-osx.cpp b/src/security/sec-tpm-osx.cpp
index 33a2c7f..04445c3 100644
--- a/src/security/sec-tpm-osx.cpp
+++ b/src/security/sec-tpm-osx.cpp
@@ -165,8 +165,6 @@
   /**
    * @brief Convert NDN name of a key to internal name of the key.
    *
-   * @param keyName
-   * @param keyClass
    * @return the internal key name
    */
   std::string
@@ -175,8 +173,6 @@
   /**
    * @brief Get key.
    *
-   * @param keyName
-   * @param keyClass
    * @returns pointer to the key
    */
   CFReleaser<SecKeychainItemRef>
@@ -185,7 +181,6 @@
   /**
    * @brief Convert keyType to MAC OS symmetric key key type
    *
-   * @param keyType
    * @returns MAC OS key type
    */
   CFTypeRef
@@ -194,7 +189,6 @@
   /**
    * @brief Convert keyType to MAC OS asymmetirc key type
    *
-   * @param keyType
    * @returns MAC OS key type
    */
   CFTypeRef
@@ -203,7 +197,6 @@
   /**
    * @brief Convert keyClass to MAC OS key class
    *
-   * @param keyClass
    * @returns MAC OS key class
    */
   CFTypeRef
@@ -212,7 +205,6 @@
   /**
    * @brief Convert digestAlgo to MAC OS algorithm id
    *
-   * @param digestAlgo
    * @returns MAC OS algorithm id
    */
   CFStringRef
@@ -221,7 +213,6 @@
   /**
    * @brief Get the digest size of the corresponding algorithm
    *
-   * @param digestAlgo
    * @return digest size
    */
   long
diff --git a/src/security/sec-tpm.hpp b/src/security/sec-tpm.hpp
index 514274c..6c27077 100644
--- a/src/security/sec-tpm.hpp
+++ b/src/security/sec-tpm.hpp
@@ -80,7 +80,7 @@
   resetTpmPassword() = 0;
 
   /**
-   * @brief Set inTerminal flag to @param inTerminal
+   * @brief Set inTerminal flag to @p inTerminal
    *
    * If the inTerminal flag is set, and password is not set, TPM may ask for password via terminal.
    * inTerminal flag is set by default.
@@ -233,7 +233,7 @@
   exportPrivateKeyPkcs5FromTpm(const Name& keyName, const std::string& password);
 
   /**
-   * @brief Import a private key in PKCS#5 formatted @param buffer of size @param bufferSize
+   * @brief Import a private key in PKCS#5 formatted buffer of size @p bufferSize
    *
    * Also recover the public key and installed it in TPM.
    *
@@ -263,7 +263,7 @@
   exportPrivateKeyPkcs8FromTpm(const Name& keyName) = 0;
 
   /**
-   * @brief Import a private key from PKCS#8 formatted @param buffer of size @param bufferSize
+   * @brief Import a private key from PKCS#8 formatted buffer of size @p bufferSize
    *
    * @param keyName    The private key name.
    * @param buffer     Pointer to the first byte of the buffer containing PKCS#8-encoded
@@ -275,7 +275,7 @@
   importPrivateKeyPkcs8IntoTpm(const Name& keyName, const uint8_t* buffer, size_t bufferSize) = 0;
 
   /**
-   * @brief Import a public key in PKCS#1 formatted @param buffer of size @param bufferSize
+   * @brief Import a public key in PKCS#1 formatted buffer of size @p bufferSize
    *
    * @param keyName    The public key name
    * @param buffer     Pointer to the first byte of the buffer containing PKCS#1-encoded
