agent: Avoid appending a '\0' byte to the response of READKEY
[gnupg.git] / common / name-value.h
index 21a5293..db9270a 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #ifndef GNUPG_COMMON_NAME_VALUE_H
@@ -40,10 +40,14 @@ typedef struct name_value_entry *nve_t;
 
 /* Memory management, and dealing with entries.  */
 
-/* Allocate a private key container structure.  */
+/* Allocate a name value container structure.  */
 nvc_t nvc_new (void);
 
-/* Release a private key container structure.  */
+/* Allocate a name value container structure for use with the extended
+ * private key format.  */
+nvc_t nvc_new_private_key (void);
+
+/* Release a name value container structure.  */
 void nvc_release (nvc_t pk);
 
 /* Get the name.  */
@@ -103,6 +107,13 @@ gpg_error_t nvc_set_private_key (nvc_t pk, gcry_sexp_t sexp);
    parser was last considering is stored there.  */
 gpg_error_t nvc_parse (nvc_t *result, int *errlinep, estream_t stream);
 
+/* Parse STREAM and return a newly allocated name value container
+   structure in RESULT - assuming the extended private key format.  If
+   ERRLINEP is given, the line number the parser was last considering
+   is stored there.  */
+gpg_error_t nvc_parse_private_key (nvc_t *result, int *errlinep,
+                                   estream_t stream);
+
 /* Write a representation of PK to STREAM.  */
 gpg_error_t nvc_write (nvc_t pk, estream_t stream);