Skip to content

Instantly share code, notes, and snippets.

@rainerborene
Last active August 29, 2015 14:21
Show Gist options
  • Save rainerborene/3cc8837cdbf2046ad14e to your computer and use it in GitHub Desktop.
Save rainerborene/3cc8837cdbf2046ad14e to your computer and use it in GitHub Desktop.
impl EncryptionKey {
fn pbkdf2(&self, password: &str) -> (&[u8], &[u8]) {
let mut dk = [0u8; 32];
let mut mac = Hmac::new(Sha1::new(), password.as_bytes());
pbkdf2(&mut mac, self.encrypted_key.value.as_ref(), self.iterations, &mut dk);
return (&dk[0..16], &dk[16..])
}
}
/*
Compiling onepass v0.1.0 (file:///home/rainerborene/Projects/1pass)
/home/rainerborene/Projects/1pass/src/encryption_key.rs:38:18: 38:20 error: `dk` does not live long enough
/home/rainerborene/Projects/1pass/src/encryption_key.rs:38 return (&dk[0..16], &dk[16..])
^~
/home/rainerborene/Projects/1pass/src/encryption_key.rs:34:56: 39:6 note: reference must be valid for the anonymous lifetime #1 defined on the block at 34:55...
/home/rainerborene/Projects/1pass/src/encryption_key.rs:34 fn pbkdf2(&self, password: &str) -> (&[u8], &[u8]) {
/home/rainerborene/Projects/1pass/src/encryption_key.rs:35 let mut dk = [0u8; 32];
/home/rainerborene/Projects/1pass/src/encryption_key.rs:36 let mut mac = Hmac::new(Sha1::new(), password.as_bytes());
/home/rainerborene/Projects/1pass/src/encryption_key.rs:37 pbkdf2(&mut mac, self.encrypted_key.value.as_ref(), self.iterations, &mut dk);
/home/rainerborene/Projects/1pass/src/encryption_key.rs:38 return (&dk[0..16], &dk[16..])
/home/rainerborene/Projects/1pass/src/encryption_key.rs:39 }
/home/rainerborene/Projects/1pass/src/encryption_key.rs:35:32: 39:6 note: ...but borrowed value is only valid for the block suffix following statement 0 at 35:31
/home/rainerborene/Projects/1pass/src/encryption_key.rs:35 let mut dk = [0u8; 32];
/home/rainerborene/Projects/1pass/src/encryption_key.rs:36 let mut mac = Hmac::new(Sha1::new(), password.as_bytes());
/home/rainerborene/Projects/1pass/src/encryption_key.rs:37 pbkdf2(&mut mac, self.encrypted_key.value.as_ref(), self.iterations, &mut dk);
/home/rainerborene/Projects/1pass/src/encryption_key.rs:38 return (&dk[0..16], &dk[16..])
/home/rainerborene/Projects/1pass/src/encryption_key.rs:39 }
/home/rainerborene/Projects/1pass/src/encryption_key.rs:38:30: 38:32 error: `dk` does not live long enough
/home/rainerborene/Projects/1pass/src/encryption_key.rs:38 return (&dk[0..16], &dk[16..])
^~
/home/rainerborene/Projects/1pass/src/encryption_key.rs:34:56: 39:6 note: reference must be valid for the anonymous lifetime #1 defined on the block at 34:55...
/home/rainerborene/Projects/1pass/src/encryption_key.rs:34 fn pbkdf2(&self, password: &str) -> (&[u8], &[u8]) {
/home/rainerborene/Projects/1pass/src/encryption_key.rs:35 let mut dk = [0u8; 32];
/home/rainerborene/Projects/1pass/src/encryption_key.rs:36 let mut mac = Hmac::new(Sha1::new(), password.as_bytes());
/home/rainerborene/Projects/1pass/src/encryption_key.rs:37 pbkdf2(&mut mac, self.encrypted_key.value.as_ref(), self.iterations, &mut dk);
/home/rainerborene/Projects/1pass/src/encryption_key.rs:38 return (&dk[0..16], &dk[16..])
/home/rainerborene/Projects/1pass/src/encryption_key.rs:39 }
/home/rainerborene/Projects/1pass/src/encryption_key.rs:35:32: 39:6 note: ...but borrowed value is only valid for the block suffix following statement 0 at 35:31
/home/rainerborene/Projects/1pass/src/encryption_key.rs:35 let mut dk = [0u8; 32];
/home/rainerborene/Projects/1pass/src/encryption_key.rs:36 let mut mac = Hmac::new(Sha1::new(), password.as_bytes());
/home/rainerborene/Projects/1pass/src/encryption_key.rs:37 pbkdf2(&mut mac, self.encrypted_key.value.as_ref(), self.iterations, &mut dk);
/home/rainerborene/Projects/1pass/src/encryption_key.rs:38 return (&dk[0..16], &dk[16..])
/home/rainerborene/Projects/1pass/src/encryption_key.rs:39 }
error: aborting due to 2 previous errors
/home/rainerborene/Projects/1pass/src/encryption_key.rs:38:18: 38:20 error: `dk` does not live long enough
/home/rainerborene/Projects/1pass/src/encryption_key.rs:38 return (&dk[0..16], &dk[16..])
^~
/home/rainerborene/Projects/1pass/src/encryption_key.rs:34:56: 39:6 note: reference must be valid for the anonymous lifetime #1 defined on the block at 34:55...
/home/rainerborene/Projects/1pass/src/encryption_key.rs:34 fn pbkdf2(&self, password: &str) -> (&[u8], &[u8]) {
/home/rainerborene/Projects/1pass/src/encryption_key.rs:35 let mut dk = [0u8; 32];
/home/rainerborene/Projects/1pass/src/encryption_key.rs:36 let mut mac = Hmac::new(Sha1::new(), password.as_bytes());
/home/rainerborene/Projects/1pass/src/encryption_key.rs:37 pbkdf2(&mut mac, self.encrypted_key.value.as_ref(), self.iterations, &mut dk);
/home/rainerborene/Projects/1pass/src/encryption_key.rs:38 return (&dk[0..16], &dk[16..])
/home/rainerborene/Projects/1pass/src/encryption_key.rs:39 }
/home/rainerborene/Projects/1pass/src/encryption_key.rs:35:32: 39:6 note: ...but borrowed value is only valid for the block suffix following statement 0 at 35:31
/home/rainerborene/Projects/1pass/src/encryption_key.rs:35 let mut dk = [0u8; 32];
/home/rainerborene/Projects/1pass/src/encryption_key.rs:36 let mut mac = Hmac::new(Sha1::new(), password.as_bytes());
/home/rainerborene/Projects/1pass/src/encryption_key.rs:37 pbkdf2(&mut mac, self.encrypted_key.value.as_ref(), self.iterations, &mut dk);
/home/rainerborene/Projects/1pass/src/encryption_key.rs:38 return (&dk[0..16], &dk[16..])
/home/rainerborene/Projects/1pass/src/encryption_key.rs:39 }
/home/rainerborene/Projects/1pass/src/encryption_key.rs:38:30: 38:32 error: `dk` does not live long enough
/home/rainerborene/Projects/1pass/src/encryption_key.rs:38 return (&dk[0..16], &dk[16..])
^~
/home/rainerborene/Projects/1pass/src/encryption_key.rs:34:56: 39:6 note: reference must be valid for the anonymous lifetime #1 defined on the block at 34:55...
/home/rainerborene/Projects/1pass/src/encryption_key.rs:34 fn pbkdf2(&self, password: &str) -> (&[u8], &[u8]) {
/home/rainerborene/Projects/1pass/src/encryption_key.rs:35 let mut dk = [0u8; 32];
/home/rainerborene/Projects/1pass/src/encryption_key.rs:36 let mut mac = Hmac::new(Sha1::new(), password.as_bytes());
/home/rainerborene/Projects/1pass/src/encryption_key.rs:37 pbkdf2(&mut mac, self.encrypted_key.value.as_ref(), self.iterations, &mut dk);
/home/rainerborene/Projects/1pass/src/encryption_key.rs:38 return (&dk[0..16], &dk[16..])
/home/rainerborene/Projects/1pass/src/encryption_key.rs:39 }
/home/rainerborene/Projects/1pass/src/encryption_key.rs:35:32: 39:6 note: ...but borrowed value is only valid for the block suffix following statement 0 at 35:31
/home/rainerborene/Projects/1pass/src/encryption_key.rs:35 let mut dk = [0u8; 32];
/home/rainerborene/Projects/1pass/src/encryption_key.rs:36 let mut mac = Hmac::new(Sha1::new(), password.as_bytes());
/home/rainerborene/Projects/1pass/src/encryption_key.rs:37 pbkdf2(&mut mac, self.encrypted_key.value.as_ref(), self.iterations, &mut dk);
/home/rainerborene/Projects/1pass/src/encryption_key.rs:38 return (&dk[0..16], &dk[16..])
/home/rainerborene/Projects/1pass/src/encryption_key.rs:39 }
error: aborting due to 2 previous errors
Build failed, waiting for other jobs to finish...
Could not compile `onepass`.
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment