| 
									
										
										
										
											2016-11-13 06:26:33 +08:00
										 |  |  | package securejsondata | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import ( | 
					
						
							| 
									
										
										
										
											2017-04-25 15:14:29 +08:00
										 |  |  | 	"github.com/grafana/grafana/pkg/log" | 
					
						
							| 
									
										
										
										
											2016-11-13 06:26:33 +08:00
										 |  |  | 	"github.com/grafana/grafana/pkg/setting" | 
					
						
							|  |  |  | 	"github.com/grafana/grafana/pkg/util" | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | type SecureJsonData map[string][]byte | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func (s SecureJsonData) Decrypt() map[string]string { | 
					
						
							|  |  |  | 	decrypted := make(map[string]string) | 
					
						
							|  |  |  | 	for key, data := range s { | 
					
						
							| 
									
										
										
										
											2017-04-25 15:14:29 +08:00
										 |  |  | 		decryptedData, err := util.Decrypt(data, setting.SecretKey) | 
					
						
							|  |  |  | 		if err != nil { | 
					
						
							|  |  |  | 			log.Fatal(4, err.Error()) | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		decrypted[key] = string(decryptedData) | 
					
						
							| 
									
										
										
										
											2016-11-13 06:26:33 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 	return decrypted | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func GetEncryptedJsonData(sjd map[string]string) SecureJsonData { | 
					
						
							|  |  |  | 	encrypted := make(SecureJsonData) | 
					
						
							|  |  |  | 	for key, data := range sjd { | 
					
						
							| 
									
										
										
										
											2017-04-25 15:14:29 +08:00
										 |  |  | 		encryptedData, err := util.Encrypt([]byte(data), setting.SecretKey) | 
					
						
							|  |  |  | 		if err != nil { | 
					
						
							|  |  |  | 			log.Fatal(4, err.Error()) | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		encrypted[key] = encryptedData | 
					
						
							| 
									
										
										
										
											2016-11-13 06:26:33 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 	return encrypted | 
					
						
							|  |  |  | } |