silc_pgp_packet_decode

SYNOPSIS

    SilcBool silc_pgp_packet_decode(const unsigned char *data,
                                    SilcUInt32 data_len,
                                    SilcBool *success,
                                    SilcList *ret_list);

DESCRIPTION

Decodes PGP packets from the data buffer indicated by `data' of length of `data_len' bytes. The data buffer may include one or more packets that are decoded and returned to the `ret_list'. The caller must free the returned packets with silc_pgp_packet_free_list. Each entry in the `ret_list' is SilcPGPPacket.

Returns the number of packets decoded or 0 on error. If the `success' is FALSE but this returns > 0 then not all packets were decoded successfully and the `ret_list' includes the packets that were decoded. When the `success' is TRUE all packets were decoded successfully.

EXAMPLE

    SilcList list;
    SilcBool success;
    unsigned char *data;
    SilcUInt32 data_len;
    SilcPGPPublicKey public_key;

    // Open public key file (binary format) and parse all PGP packets
    data = silc_file_readfile("pubkey.bin", &data_len, NULL);
    silc_pgp_packet_decode(data, data_len, &success, &list);

    // Parse public key
    silc_pgp_public_key_decode(&list, &public_key);