From f3812d374cb18d5a05f4140d0e655d296e9347fd Mon Sep 17 00:00:00 2001
From: pzm <pzm@google.com>
Date: Mon, 2 Nov 2015 18:47:21 -0800
Subject: [PATCH] fix aes

---
 aes/aes.go | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/aes/aes.go b/aes/aes.go
index b8f89c8..8a8408e 100644
--- a/aes/aes.go
+++ b/aes/aes.go
@@ -1,4 +1,4 @@
-// Package aes implements AES128 ECB hashing
+// Package aes implements AES hashing
 package aes
 
 /*
@@ -87,13 +87,13 @@ func (self *aesKey) Encrypt(dst, src []byte) {
 
 	dst_p := pointerFromBytes(dst)
 	src_p := pointerFromBytes(src)
-	C.AES_ecb_encrypt(src_p, dst_p, &self._aes_encrypt_key, C.AES_ENCRYPT)
+	C.AES_encrypt(src_p, dst_p, &self._aes_encrypt_key)
 
 	// for safe measure
-	err := sslerr.Error()
-	if err != nil {
-		panic(err.Error())
-	}
+	// err := sslerr.Error()
+	// if err != nil {
+	//      panic(err.Error())
+	// }
 }
 func (self *aesKey) Decrypt(dst, src []byte) {
 	if goCompatible {
@@ -108,13 +108,13 @@ func (self *aesKey) Decrypt(dst, src []byte) {
 
 	dst_p := pointerFromBytes(dst)
 	src_p := pointerFromBytes(src)
-	C.AES_ecb_encrypt(src_p, dst_p, &self._aes_decrypt_key, C.AES_DECRYPT)
+	C.AES_decrypt(src_p, dst_p, &self._aes_decrypt_key)
 
 	// for safe measure
-	err := sslerr.Error()
-	if err != nil {
-		panic(err.Error())
-	}
+	// err := sslerr.Error()
+	// if err != nil {
+	//	panic(err.Error())
+	// }
 }
 
 // Here for compatibility with 'crypto/aes'
-- 
2.6.0.rc2.230.g3dd15c0

