Convert array of u32 to Vec in Rust
Algorithm A seems the clearest to me.  An improvement might be to use Vec::with_capacity to avoid the allocation.  Indeed, arrays in Rust are currently somewhat cumbersome to use.
My advice would be to wrap it in a function and not worry about it later on:
pub fn to_bytes(input: &amp;[u32]) -&gt; Vec&lt;u8&gt; {
    let mut bytes = Vec::with_capacity(4 * input.len());

    for value in input {
        bytes.extend(&amp;value.to_be_bytes());
    }

    bytes
}

#[cfg(test)]
mod tests {
    #[test]
    fn to_bytes() {
        use super::*;

        assert_eq!(to_bytes(&amp;[]), &amp;[]);

        let input = &amp;[0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0];
        let output = &amp;[
            0x67, 0x45, 0x23, 0x01, 0xEF, 0xCD, 0xAB, 0x89, 0x98, 0xBA, 0xDC, 0xFE, 0x10, 0x32,
            0x54, 0x76, 0xC3, 0xD2, 0xE1, 0xF0,
        ];

        assert_eq!(to_bytes(input), output);
    }
}

(playground)