1 /* -*- Mode: C; tab-width: 4 -*-
2 *
3 * Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved.
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18
19 // SharedSecret.cpp : implementation file
20 //
21
22
23 #include <Secret.h>
24 #include "stdafx.h"
25 #include "SharedSecret.h"
26 #include <WinServices.h>
27
28 #include <DebugServices.h>
29
30
31 // SharedSecret dialog
32
IMPLEMENT_DYNAMIC(CSharedSecret,CDialog)33 IMPLEMENT_DYNAMIC(CSharedSecret, CDialog)
34
35
36 //---------------------------------------------------------------------------------------------------------------------------
37 // CSharedSecret::CSharedSecret
38 //---------------------------------------------------------------------------------------------------------------------------
39
40 CSharedSecret::CSharedSecret(CWnd* pParent /*=NULL*/)
41 : CDialog(CSharedSecret::IDD, pParent)
42 , m_key(_T(""))
43 , m_secret(_T(""))
44 {
45 }
46
47
48 //---------------------------------------------------------------------------------------------------------------------------
49 // CSharedSecret::~CSharedSecret
50 //---------------------------------------------------------------------------------------------------------------------------
51
~CSharedSecret()52 CSharedSecret::~CSharedSecret()
53 {
54 }
55
56
57 //---------------------------------------------------------------------------------------------------------------------------
58 // CSharedSecret::DoDataExchange
59 //---------------------------------------------------------------------------------------------------------------------------
60
DoDataExchange(CDataExchange * pDX)61 void CSharedSecret::DoDataExchange(CDataExchange* pDX)
62 {
63 CDialog::DoDataExchange(pDX);
64 DDX_Text(pDX, IDC_KEY, m_key );
65 DDX_Text(pDX, IDC_SECRET, m_secret );
66 }
67
68
BEGIN_MESSAGE_MAP(CSharedSecret,CDialog)69 BEGIN_MESSAGE_MAP(CSharedSecret, CDialog)
70 END_MESSAGE_MAP()
71
72
73 //---------------------------------------------------------------------------------------------------------------------------
74 // CSharedSecret::Load
75 //---------------------------------------------------------------------------------------------------------------------------
76
77 void
78 CSharedSecret::Load( CString zone )
79 {
80 char zoneUTF8[ 256 ];
81 char outDomain[ 256 ];
82 char outKey[ 256 ];
83 char outSecret[ 256 ];
84
85 StringObjectToUTF8String( zone, zoneUTF8, sizeof( zoneUTF8 ) );
86
87 if ( LsaGetSecret( zoneUTF8, outDomain, sizeof( outDomain ) / sizeof( TCHAR ), outKey, sizeof( outKey ) / sizeof( TCHAR ), outSecret, sizeof( outSecret ) / sizeof( TCHAR ) ) )
88 {
89 m_key = outKey;
90 m_secret = outSecret;
91 }
92 else
93 {
94 m_key = zone;
95 }
96 }
97
98
99 //---------------------------------------------------------------------------------------------------------------------------
100 // CSharedSecret::Commit
101 //---------------------------------------------------------------------------------------------------------------------------
102
103 void
Commit(CString zone)104 CSharedSecret::Commit( CString zone )
105 {
106 char zoneUTF8[ 256 ];
107 char keyUTF8[ 256 ];
108 char secretUTF8[ 256 ];
109
110 StringObjectToUTF8String( zone, zoneUTF8, sizeof( zoneUTF8 ) );
111 StringObjectToUTF8String( m_key, keyUTF8, sizeof( keyUTF8 ) );
112 StringObjectToUTF8String( m_secret, secretUTF8, sizeof( secretUTF8 ) );
113
114 LsaSetSecret( zoneUTF8, keyUTF8, secretUTF8 );
115 }
116