Comments (6)
Thank you for your issue! I've now addressed this on main
.
from rasn.
@XAMPPRocky I think there is still some mistakes.
use rasn::AsnType;
use rasn::Decode;
use rasn::Encode;
use std::error::Error;
#[derive(Debug, AsnType, Decode, Encode)]
struct Message {
id: i32,
#[rasn(choice)]
body: BODY,
}
#[derive(Debug, AsnType, Decode, Encode)]
#[rasn(choice)]
enum BODY {
#[rasn(tag(context, 3000))]
Request(Request),
#[rasn(tag(context, 3001))]
Response(Response),
}
#[derive(Debug, AsnType, Decode, Encode)]
struct Request {
num: i32,
}
#[derive(Debug, AsnType, Decode, Encode)]
struct Response {
ret: i32,
}
fn main() -> Result<(), Box<dyn Error>> {
let p = Message {
id: 1,
body: BODY::Request(Request { num: 1 }),
};
let e = rasn::der::encode(&p).unwrap();
println!("e: {:#04x?}", e);
Ok(())
}
the above code prints 0x30,0x0a,0x02,0x01,0x01,0xbf,0xb8,0x17,0x03,0x02,0x01,0x01
but it should prints0x30,0x0a,0x02,0x01,0x01,0xbf,0x97,0x38,0x03,0x02,0x01,0x01
from rasn.
@yaozongyou The mistake is in your code. You need to have #[rasn(automatic_tags)]
above each item, if you want to apply that transformation, just like you have to write AUTOMATIC TAGS
in the module. You can see in tests/issue35.rs
for a correct example.
from rasn.
@XAMPPRocky I have added #[rasn(automatic_tags)]
as in tests/issue35.rs
, but the output is 0xb8,0x17
which is not i wanted.
0xb8,0x17
as in binary is 1011100000010111
which is high-tag-nubmer form of 7191. the output should be 0x97,0x38
which in binary is 1001011100111000
which is high-tag-number form of 3000, and this is right.
by the way, i have changed the tag of Request from 100 to 3000.
from rasn.
Thank you for updating it, I've now fixed that issue as well.
from rasn.
thanks, it works as expected.
from rasn.
Related Issues (20)
- Traits for macro expansion not always correctly carried with generics when using Encode/Decode HOT 2
- Prettyprint for Errors HOT 3
- Unable to round-trip with APER HOT 9
- Unable to round-trip NumericString with APER HOT 1
- Proc macro should error on unknown attributes
- Getting default value of type not currently possible when implementing codec HOT 5
- Question about DER encoding discrepancy between versions (0.7 -> 0.8) HOT 1
- Incorrect DER Encoding Order of SET OF Type HOT 1
- stack overflow when comparing &ObjectIdentifier with &[u32] HOT 1
- DER decoding of empty sequences is incredibly slow HOT 4
- UnbindRequest encodes/decodes incorrectly
- Comparing Object Identifier causes SIGSEGV HOT 2
- `index_map` and `character_map` are broken (one static map is initialized for all types, and thus doesn't work for different types)
- Breaking change in 0.12.6 breaks compilation of apple-codesign HOT 1
- Tokei lines of code badge doesn't work
- Mutable Access to Encoded Values HOT 2
- Performance of PER codec HOT 8
- Is it possible to get &[u8] for the underlying decoded value
- Standards crates (`rasn-pkix`, `rasn-ocsp`, etc.) should not enable `rasn`'s default feature HOT 2
- Failed windows builds HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rasn.