Fixed asn.1 uper option bits

This commit is contained in:
2024-07-17 10:30:39 -04:00
parent 083bb5a72e
commit e2eade1456
2 changed files with 4 additions and 2 deletions

View File

@ -24,6 +24,8 @@
#define uper_get_bits_length(U,S) (uper_get_bits_stream(U,S)+1)
#define uper_put_bits_length(U,L,S) uper_put_bits_stream(U,(L)-1,S)
#define uper_get_seq_length(U,S) (uper_get_bits_stream(U,S)+1)
#define uper_init_extension(E) asn1_init_extension(E)
#define uper_init_bitstream(E) asn1_init_bitstream(E)

View File

@ -74,8 +74,8 @@ uint uper_get_extension(UPER_Stream *uper, UPER_Extension *ext, uint noptions, u
// check for options
if (noptions) {
ext->value = uper_get_bits_stream(uper, noptions);
ext->options = noptions;
ext->value = uper_get_bits_stream(uper, noptions);
}
else
ext->options = 0;
@ -120,7 +120,7 @@ uint uper_get_ext_optional(UPER_Extension *ext, uint bit)
if (!ext || (bit>=ext->options))
return 0;
return (ext->value & 1<<(ext->options-bit));
return (ext->value & 1<<(ext->options-bit-1));
}
uint uper_get_ext_skip(UPER_Stream *uper, UPER_Extension *ext)