Lines Matching defs:header

241     char *nm = NULL, *header = NULL;
248 pem_free(header, flags, 0);
250 if (!PEM_read_bio_ex(bp, &nm, &header, &data, &len, flags)) {
256 if (!PEM_get_EVP_CIPHER_INFO(header, &cipher))
272 pem_free(header, flags, 0);
476 * This implements a very limited PEM header parser that does not support the
482 * into a header label and content. We would then parse the content of the
487 int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher)
498 if ((header == NULL) || (*header == '\0') || (*header == '\n'))
501 if (strncmp(header, ProcType, sizeof(ProcType)-1) != 0) {
505 header += sizeof(ProcType)-1;
506 header += strspn(header, " \t");
508 if (*header++ != '4' || *header++ != ',')
510 header += strspn(header, " \t");
513 if (strncmp(header, ENCRYPTED, sizeof(ENCRYPTED)-1) != 0 ||
514 strspn(header+sizeof(ENCRYPTED)-1, " \t\r\n") == 0) {
518 header += sizeof(ENCRYPTED)-1;
519 header += strspn(header, " \t\r");
520 if (*header++ != '\n') {
529 if (strncmp(header, DEKInfo, sizeof(DEKInfo)-1) != 0) {
533 header += sizeof(DEKInfo)-1;
534 header += strspn(header, " \t");
540 dekinfostart = header;
541 header += strcspn(header, " \t,");
542 c = *header;
543 *header = '\0';
545 *header = c;
546 header += strspn(header, " \t");
553 if (ivlen > 0 && *header++ != ',') {
556 } else if (ivlen == 0 && *header == ',') {
561 if (!load_iv(&header, cipher->iv, EVP_CIPHER_get_iv_length(enc)))
591 int PEM_write(FILE *fp, const char *name, const char *header,
602 ret = PEM_write_bio(b, name, header, data, len);
608 int PEM_write_bio(BIO *bp, const char *name, const char *header,
630 i = header != NULL ? strlen(header) : 0;
632 if ((BIO_write(bp, header, i) != i) || (BIO_write(bp, "\n", 1) != 1))
671 int PEM_read(FILE *fp, char **name, char **header, unsigned char **data,
682 ret = PEM_read_bio(b, name, header, data, len);
790 /* Keep track of how much of a header we've seen. */
798 * Extract the optional PEM header, with details on the type of content and
800 * The end of the header is marked by a blank line; if the end-of-input marker
801 * is reached prior to a blank line, there is no header.
803 * The header and data arguments are BIO** since we may have to swap them
804 * if there is no header, for efficiency.
808 static int get_header_and_data(BIO *bp, BIO **header, BIO **data, char *name,
811 BIO *tmp = *header;
814 /* 0 if not seen (yet), 1 if reading header, 2 if finished header */
851 /* Check for end of header. */
869 /* Check for end of stream (which means there is no header). */
879 *header = *data;
889 * Else, a line of text -- could be header or data; we don't
918 int PEM_read_bio_ex(BIO *bp, char **name_out, char **header,
929 *name_out = *header = NULL;
975 *header = pem_malloc(headerlen + 1, flags);
977 if (*header == NULL || *data == NULL)
979 if (headerlen != 0 && BIO_read(headerB, *header, headerlen) != headerlen)
981 (*header)[headerlen] = '\0';
991 pem_free(*header, flags, 0);
992 *header = NULL;
1003 int PEM_read_bio(BIO *bp, char **name, char **header, unsigned char **data,
1006 return PEM_read_bio_ex(bp, name, header, data, len, PEM_FLAG_EAY_COMPATIBLE);