【问题标题】:How to print a BIO object in opensl or print time from ASN1_TYPE object如何在 opensl 中打印 BIO 对象或从 ASN1_TYPE 对象打印时间
【发布时间】:2011-12-25 15:48:19
【问题描述】:

如何打印存储在 BIO 对象“时间”中的值。基本上我需要提取签名时间。

ASN1_TYPE *asn1obj;         
if (!(asn1obj = PKCS7_get_signed_attribute(si, NID_pkcs9_signingTime))) {
    NSLog(@"Failed to retireve the signing time");
}else{
    if (asn1obj->type == V_ASN1_UTCTIME) {
        BIO * time = data=BIO_new(BIO_s_bio());
        i = ASN1_UTCTIME_print(time,asn1obj->value.utctime);
        NSLog(@"return value from ASN1_UTCTIME_print %d ",i);                   
    }
}

谢谢

【问题讨论】:

    标签: openssl asn.1 pkcs#7


    【解决方案1】:

    这就是它的工作方式

    if (asn1obj->type == V_ASN1_UTCTIME) {
    
        NSLog(@"--------------------------->Retireve the signing time");
        BIO * time = data=BIO_new(BIO_s_bio());                  
    
        BIO_printf(bio_out,"\n");
    
        i = ASN1_UTCTIME_print(bio_out,asn1obj->value.utctime);   //used to display in console
        i = ASN1_UTCTIME_print(time,asn1obj->value.utctime);      //used to hold in BIO object
    
        BIO_printf(bio_out,"\n");
    
        BIO *mem = BIO_new(BIO_s_mem());              
        //pass this mem BIO to hold the data
        i = ASN1_UTCTIME_print(mem,asn1obj->value.utctime);       //converting asn1 to memory BIO
    
        //Extract the BUF_MEM structure from a memory BIO and then free up the BIO:
    
        BUF_MEM *bptr;
        BIO_get_mem_ptr(mem, &bptr);                  //converting memory BIO to BUF_MEM
        BIO_set_close(mem, BIO_NOCLOSE); /* So BIO_free() leaves BUF_MEM alone */
    
        char *buff = (char *)malloc(bptr->length);        //converting BUF_MEM  to Char * 
        memcpy(buff, bptr->data, bptr->length-1);         //to be used later
        buff[bptr->length-1] = 0;
    
        NSLog(@"--------------------------->%s",buff);        // this is my 
                                      // OUTPUT : Apr  5 14:30:53 2012 GM
    
        NSLog(@"--------------------------->End");
        BIO_free_all(mem);              
    }
    

    希望这会有所帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-17
      • 2023-03-11
      • 1970-01-01
      • 2011-08-13
      • 1970-01-01
      • 1970-01-01
      • 2018-10-19
      相关资源
      最近更新 更多