diff --git a/src/dewif.rs b/src/dewif.rs
index 96c61ed546999bb480e65d920c1c4928e32deff5..73a3b471fdc93f63d62c7442b79e0c8f947358f9 100644
--- a/src/dewif.rs
+++ b/src/dewif.rs
@@ -54,8 +54,7 @@
 //! // Read DEWIF file content
 //! // If the file content is correct, we get a key-pair iterator.
 //! let mut key_pair_iter = read_dewif_file_content(dewif_file_content, encryption_passphrase)
-//!     .expect("invalid DEWIF file.")
-//!     .into_iter();
+//!     .expect("invalid DEWIF file.");
 //!
 //! // Get first key-pair
 //! let key_pair = key_pair_iter
@@ -138,8 +137,7 @@ mod tests {
         let dewif_content = write_dewif_v1_content(&written_keypair, "toto");
 
         let mut keypairs_iter = read_dewif_file_content(&dewif_content, "toto")
-            .expect("dewif content must be readed successfully")
-            .into_iter();
+            .expect("dewif content must be readed successfully");
         let keypair_read = keypairs_iter.next().expect("Must read one keypair");
 
         assert_eq!(KeyPairEnum::Ed25519(written_keypair), keypair_read,)
@@ -172,8 +170,7 @@ mod tests {
         let dewif_content = write_dewif_v2_content(&written_keypair1, &written_keypair2, "toto");
 
         let mut keypairs_iter = read_dewif_file_content(&dewif_content, "toto")
-            .expect("dewif content must be readed successfully")
-            .into_iter();
+            .expect("dewif content must be readed successfully");
         let keypair1_read = keypairs_iter.next().expect("Must read one keypair");
         let keypair2_read = keypairs_iter.next().expect("Must read one keypair");
 
diff --git a/src/dewif/read.rs b/src/dewif/read.rs
index 861a52758138b8aca3218a0ebbf0fc408579d28f..ce94a98e9bcb3caf185276fb15e3b2f6b2d68c63 100644
--- a/src/dewif/read.rs
+++ b/src/dewif/read.rs
@@ -25,6 +25,9 @@ use thiserror::Error;
 
 const MAX_KEYPAIRS_COUNT: usize = 2;
 
+type KeyPairsArray = ArrayVec<[KeyPairEnum; MAX_KEYPAIRS_COUNT]>;
+type KeyPairsIter = arrayvec::IntoIter<[KeyPairEnum; MAX_KEYPAIRS_COUNT]>;
+
 /// Error when try to read DEWIF file content
 #[derive(Clone, Debug, Error)]
 pub enum DewifReadError {
@@ -55,7 +58,7 @@ pub enum DewifReadError {
 pub fn read_dewif_file_content(
     file_content: &str,
     passphrase: &str,
-) -> Result<impl IntoIterator<Item = KeyPairEnum>, DewifReadError> {
+) -> Result<impl Iterator<Item = KeyPairEnum>, DewifReadError> {
     let mut bytes = base64::decode(file_content).map_err(DewifReadError::InvalidBase64Str)?;
 
     if bytes.len() < 4 {
@@ -66,9 +69,9 @@ pub fn read_dewif_file_content(
 
     match version {
         1 => Ok({
-            let mut array_keypairs = ArrayVec::new();
+            let mut array_keypairs = KeyPairsArray::new();
             array_keypairs.push(read_dewif_v1(&mut bytes[4..], passphrase)?);
-            array_keypairs
+            array_keypairs.into_iter()
         }),
         2 => read_dewif_v2(&mut bytes[4..], passphrase),
         other_version => Err(DewifReadError::UnsupportedVersion {
@@ -92,11 +95,8 @@ fn read_dewif_v1(bytes: &mut [u8], passphrase: &str) -> Result<KeyPairEnum, Dewi
     bytes_to_checked_keypair(bytes)
 }
 
-fn read_dewif_v2(
-    bytes: &mut [u8],
-    passphrase: &str,
-) -> Result<ArrayVec<[KeyPairEnum; MAX_KEYPAIRS_COUNT]>, DewifReadError> {
-    let mut array_keypairs = ArrayVec::new();
+fn read_dewif_v2(bytes: &mut [u8], passphrase: &str) -> Result<KeyPairsIter, DewifReadError> {
+    let mut array_keypairs = KeyPairsArray::new();
 
     match bytes.len() {
         len if len < super::V2_ENCRYPTED_BYTES_LEN => return Err(DewifReadError::TooShortContent),
@@ -111,7 +111,7 @@ fn read_dewif_v2(
     array_keypairs.push(bytes_to_checked_keypair(&bytes[..64])?);
     array_keypairs.push(bytes_to_checked_keypair(&bytes[64..])?);
 
-    Ok(array_keypairs)
+    Ok(array_keypairs.into_iter())
 }
 
 fn bytes_to_checked_keypair(bytes: &[u8]) -> Result<KeyPairEnum, DewifReadError> {
@@ -173,8 +173,7 @@ mod tests {
         // Read DEWIF file content
         // If the file content is correct, we get a key-pair iterator.
         let mut key_pair_iter = read_dewif_file_content(dewif_file_content, encryption_passphrase)
-            .expect("invalid DEWIF file.")
-            .into_iter();
+            .expect("invalid DEWIF file.");
 
         // Get first key-pair
         let key_pair = key_pair_iter