Method: Krypt::ASN1::ASN1Data#value=

Defined in:
ext/krypt/core/krypt_asn1.c

#value=(value) ⇒ Object

Set the value of an ASN1Data. Please see Constructive and Primitive docs for the mappings between ASN.1 data types and Ruby classes.



857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
# File 'ext/krypt/core/krypt_asn1.c', line 857

static VALUE
krypt_asn1_data_set_value(VALUE self, VALUE value)
{
    krypt_asn1_data *data;
    krypt_asn1_object *object;
    int is_constructed;

    int_asn1_data_get(self, data);
    int_asn1_data_set_value(self, value);

    /* Free data that is now stale */
    object = data->object;
    int_invalidate_value(object);    
    is_constructed = rb_respond_to(value, sKrypt_ID_EACH);
    if (object->header->is_constructed != is_constructed) {
  object->header->is_constructed = is_constructed;
  int_invalidate_tag(object->header);
  data->codec = int_codec_for(data->object);
    }

    int_asn1_data_set_modified(data, 1);

    return value;
}