V
Virajitha Sarma
[StructLayout(LayoutKind.Explicit)]
public struct SampleUnion
{
[FieldOffset(0)] public uint dword;
[FieldOffset(0)] public byte[] bytes;
[FieldOffset(0)] public uint byte3;
[FieldOffset(8)] public uint byte2;
[FieldOffset(16)] public uint byte1;
[FieldOffset(24)] public uint byte0;
};
uint S(SampleUnion x, uint y)
i am calling a function "S". Depending on the value y, the function
should return the value of the expression "SBoxes[y][x.bytes##y])" (this
expression is written in c)... suppose y=1, then SBoxes[1][x.bytes1]...
where bytes1 is a member of the C# representation of C union. In the
same way for y=2,3,.... i should be able to compute the expression by
calling this function "S"...
In C, this can be done as..
uint S(SampleUnion x, uint y)
{
return(SBoxes[y][x.bytes##y]);
}
Here y is appended to bytes using "##". But i donot how i can do it in
C#....Due to this i am not able to proceed further.So any kind of help
is highly appreciated and will be waiting for any reply...
Thanku
public struct SampleUnion
{
[FieldOffset(0)] public uint dword;
[FieldOffset(0)] public byte[] bytes;
[FieldOffset(0)] public uint byte3;
[FieldOffset(8)] public uint byte2;
[FieldOffset(16)] public uint byte1;
[FieldOffset(24)] public uint byte0;
};
uint S(SampleUnion x, uint y)
i am calling a function "S". Depending on the value y, the function
should return the value of the expression "SBoxes[y][x.bytes##y])" (this
expression is written in c)... suppose y=1, then SBoxes[1][x.bytes1]...
where bytes1 is a member of the C# representation of C union. In the
same way for y=2,3,.... i should be able to compute the expression by
calling this function "S"...
In C, this can be done as..
uint S(SampleUnion x, uint y)
{
return(SBoxes[y][x.bytes##y]);
}
Here y is appended to bytes using "##". But i donot how i can do it in
C#....Due to this i am not able to proceed further.So any kind of help
is highly appreciated and will be waiting for any reply...
Thanku