MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / SecurityDatabase

Class SecurityDatabase

src/auth/SecureRemotePassword/server/SrpServer.cpp:109–244  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

107
108
109class SecurityDatabase : public VSecDb
110{
111public:
112 // VSecDb implementation
113 bool lookup(void* inMsg, void* outMsg) override
114 {
115 FbLocalStatus status;
116
117 stmt->execute(&status, tra, meta().param.getMetadata(), inMsg,
118 meta().data.getMetadata(), outMsg);
119 check(&status);
120
121 return false; // safe default
122 }
123
124 bool test() override
125 {
126 FbLocalStatus status;
127
128 att->ping(&status);
129 return !(status->getState() & IStatus::STATE_ERRORS);
130 }
131
132 // This 2 are needed to satisfy temporarily different calling requirements
133 static int shutdown(const int, const int, void*)
134 {
135 return instances->shutdown();
136 }
137 static void cleanup()
138 {
139 instances->shutdown();
140 }
141
142 static void forceClean(IProvider* p, CachedSecurityDatabase::Instance& instance)
143 {
144 Firebird::PathName secDbName(instance->secureDbName);
145
146 instance.reset();
147 cleanup();
148
149 ClumpletWriter dpb(ClumpletReader::dpbList, MAX_DPB_SIZE);
150 dpb.insertByte(isc_dpb_sec_attach, TRUE);
151 dpb.insertByte(isc_dpb_gfix_attach, TRUE);
152 dpb.insertTag(isc_dpb_nolinger);
153 dpb.insertString(isc_dpb_user_name, DBA_USER_NAME, fb_strlen(DBA_USER_NAME));
154 dpb.insertString(isc_dpb_config, ParsedList::getNonLoopbackProviders(secDbName));
155
156 FbLocalStatus status;
157 RefPtr<IAttachment> att(REF_NO_INCR,
158 p->attachDatabase(&status, secDbName.c_str(), dpb.getBufferLength(), dpb.getBuffer()));
159 check(&status);
160
161 HANDSHAKE_DEBUG(fprintf(stderr, "Srv SRP: gfix-like attach to sec db %s\n", secDbName.c_str()));
162 }
163
164 SecurityDatabase(CachedSecurityDatabase::Instance& instance, ICryptKeyCallback* cryptCallback)
165 : att(nullptr), tra(nullptr), stmt(nullptr)
166 {

Callers 1

authenticateMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected